很久很久以前,有一個叫王子服的秀才,在上元節外出遊玩時,遇見了一個姑娘。她手捏着一朵梅花,笑容燦爛。王子服被她的美麗吸引住了,目不轉睛地盯着她看。姑娘突然低聲説:“你這樣看着我,像個賊!”説完,她把花丟在地上,徑直離開了。王子服撿起花來,心情沉重,像失去了靈魂一樣,悶悶不樂地回家了。
他把花藏在枕下,一躺下就睡着了。好幾天都沒有吃喝。他的母親非常擔心,請來了醫生和道士為他看病驅邪,但都無濟於事。這時,他的表哥吳生來了。吳生詢問了他的病情,王子服告訴他自己因為思念那位姑娘而生病了。吳生説:“這有什麼難的?我幫你打聽一下,一定能讓你實現心願。”王子服聽了吳生的話,病好了很多。吳生四處打探消息,但一直沒有找到姑娘的下落。王子服催促他,吳生只好撒謊説:“那是我姑姑的女兒,你的姨表妹,目前還沒有訂婚。”王子服聽了非常高興,得知姑娘住在西南山裏,離他家只有三十多里路。
王子服的身體逐漸康復,每天看着枕下的枯萎的梅花,彷彿看到了那位美麗的姑娘。他懷着深深的思念之情,把梅花藏在衣袖裏,決定自己去山上尋找姑娘。野外的山巒環繞着翠綠的景色。王子服走了三十多里的山路,遠遠地看到山谷中繁花似錦,隱約可見一個村落。他走進村子,看到一户人家牆內的桃花和杏花格外繁盛,修竹蒼翠,野鳥鳴叫。他不敢貿然進去,就在門外的大石頭上休息。
這時,一個女子推門出來,手裏拿着一朵杏花,正準備往髮髻上戴。她抬起頭看見王子服,臉上露出了微笑,然後迅速進了門。王子服一眼就認出她就是上元節遇見的姑娘,心中歡喜不已,卻不知道如何登門拜訪。從早晨等到中午,終於有一個老婦人拄着枴杖走出來問他要找誰。王子服忙説自己是來看親戚的,姓吳。他詳細地告訴了老婦人自己的家世。老婦人非常吃驚地説:“你是我外甥啊!你母親是我妹妹的孩子。只是家裏太窮了,又沒有男丁送信給你。”王子服很高興,老婦人又説:“我丈夫姓秦,膝下有個女兒叫嬰寧。雖然不是我親生的,但她母親過世後我就把她接回來撫養了。她每天都笑嘻嘻的,無憂無慮。”
王子服在姨母家安頓下來。吃飯的時候,老婦人讓嬰寧出來見客。她彎腰行禮時不停地笑個不停。兩人相見後,老婦人看到他們郎才女貌,不禁感嘆道:“外甥還沒有定親吧?嬰寧也沒有婆家,你們真是天造地設的一對。”王子服的目光一直盯着嬰寧不放。嬰寧大笑起來,拉着婢女去欣賞桃花了。
第二天,王子服在花叢中漫步時遇到了嬰寧。他拿出衣袖裏的梅花給她看。嬰寧接過花説:“已經枯萎了,為什麼還留着?”王子服回答:“這是妹妹扔下的,我因為愛慕她而保存着。”嬰寧卻説:“這只是小事而已。園子裏的花那麼多,我給你折一大捆。”王子服説:“我不是愛花,而是愛那個拿着花的人。”嬰寧低下頭不再説話。晚飯過後,王家的僕人來找王子服。老婦人非常高興,請求帶着嬰寧一起回去。她説自己年紀大了,想把女兒託付給妹妹照顧一下,也算是了卻一樁心事。
這話正合王子服的心意,於是兩人準備妥當後便啓程回家了。回到家裏,王子服的母親見到兒子帶回了一個漂亮的姑娘,非常驚訝。她想起自己有一個姐姐嫁到了姓秦的家庭裏,但那姐姐早已過世了。當她聽到老婦人的描述時,發現她的相貌和臉型、眉目都非常相似。
經過詢問得知姑娘名叫嬰寧後,老人才恍然大悟:原來秦家姐姐去世後,姐夫一個人過着寂寞的生活被狐狸迷住了。那隻狐狸生了個女兒名叫嬰寧。在她小時候的時候,家裏人都見過她一次。後來姐夫去世了,狐狸就帶着女兒消失了。原來是託付給了這個老婦人撫養長大的啊!王子服的母親看到兒子如此痴情一片,嬰寧又嬌憨可愛的樣子,於是選擇了一個吉日良辰為他們舉辦了婚禮。