浙江麗水縣列眉村趙本,祖上曾在宋朝做官。趙本生有一女,取名如子。如子十歲時,父母雙雙離開了人世。她在鄉鄰的幫助下,帶着家中的僕人,耕田種地生活,自己也常常做些針線;閒暇之時,跟着叔祖父讀書。如子不僅生得美麗,而且十分聰慧,十四、五歲之時,已經學得像飽學的秀才了。為了能夠嫁一個如意丈夫,於是改名趙白,女扮男裝,外出遊學。
一天,趙白來到郡城,到閒居泉下的司空學土家花園中游玩。學士見她相貌不凡,請她喝酒,又發現她很有才學,想將她招為東牀快婿,叫婢女小紅出席侑酒、唱曲,而婢女所唱的曲子,都是公子司空約所作。趙白十分佩服。又聽説公子年方十九,尚未娶親,已是怦然心動。當晚學士留趙白在家歇宿,就住在公子的房中,又看見了他的一首《訪美》詩,便和了一首,隱隱自薦。第二天,害怕司空學士又來為女兒求親,便將詩留在房中,悄悄地離開了司空家。又打聽得司空約已去西湖遊玩,於是也趕往西湖,希望能夠在西湖巧遇。到了西湖,卻未能見着司空約,趙白便在遊湖的人多要去的兩個地方題詩,傳遞消息。恰好這兩首詩都被司空約看見,但兩人卻到底未能在西湖相遇。
司空約回到家中,知道趙白曾經相訪,又看見她所和的詩作,也對趙的才情十分佩服,而司空學士仍想招趙白為婿,便叫兒子到麗水列眉村去尋訪。司空約來到分佩服,而司空學士仍想招趙白為婿,便叫兒子到麗水列眉村去尋訪,司空約來到列眉村,而趙白卻還沒有回來,兩人又未能相逢。司空約遂於村口牆上題詩一首,悵然而歸。趙白回來後,見到了司空約的詩,欣喜之下,也和作了一首,叫家人送往司空家中,於是引得司空約二次來到列眉村。
趙白的伯母接待了司空約,這時司空約才知道趙白原來是個女子,本名叫如子。兩下里定了婚約,商量好待司空約金榜題名之時迎娶。
爾後,司空約鄉試中了經魁,進京會試,來到曲阜。這曲阜有個趙宛子,乃是已故中極殿大學士的女兒,也是個美麗多才的女子,此時正垂簾考詩擇婿。趙宛子的家人見司空約人物英俊,又是個入京赴試的舉人,將他邀至家中,與宛子詩詞唱和。宛子見司空約才貌出眾,欲以終身相托。司空雖也深慕宛子的才情,但與如子有約在先,便將自己與如子的事情告訴了宛子,婉謝了這一段姻緣,臨去時題詩寓中以抒懷。
司空約入京赴試,如子放心不下,仍更名趙白,男裝相隨。行到曲阜,剛好住在司空約曾下榻過的旅店中,見到了司空約的抒懷詩,便也到宛子的寓所,跟她唱和,想探一探兩人的心跡,也深深地喜歡上宛子的詩才,於是便以如子弟弟的身份,請她與姐姐一起嫁給司空約。宛子高興地答應了。
朝中吏部李尚書的兒子李最貴,夫人亡故,打聽得已故中極殿大學士的女兒趙宛子美貌多才,想娶為繼室。尚書上疏,皇帝命曲阜王撫台為媒,要宛子嫁給李最貴。而李是個胸無點墨、貪杯好酒的庸夫。如子暗中為司空約、趙宛子出主意,通消息。恰好此時司空約高中二甲第一名,兵部晏尚書有個相貌醜陋的女兒,想嫁給司空約,也請媒人説合。如子暗中策劃,一面讓司空約在《齒敍錄》中刻上已聘趙宛子等字樣,並以此為由婉謝,一面通知趙宛子以已受司空約之聘為辭。李、晏二尚書大怒,上本參奏司空約、趙宛子虛誑朝廷,上抗聖命。皇上親召司空約訊問。司空約便將二人如何考詩,如何結盟,一一上聞。於是皇上轉為李、晏二尚書的兒女撮合,降旨賜婚。