一書生在城中流金寺讀書,他旁邊一家因為宅院常有不祥之兆就搬走了,後來又有個老頭帶一家人住了進來。鄰家原有一座樓,正好可以俯視書生的書房。
這樓一直是緊鎖著的,可是在老頭搬來的第二天,忽然掛起了華麗的珠簾羅幕,一會兒從樓裏出來位女子,年紀不大,容貌卻賽過天仙。書生一見就迷上了,像木頭似的呆呆地瞅了那個女子老半天。可那位少女扶著欄杆看著別處,一眼也不看他,過了一會兒,就慢慢揭開竹簾走進去,把門關上了。書生在書房裏走來走去地讚歎,天下竟有這般美麗的女子?真讓人不敢相信。於是便伸長脖子往樓上瞅,想著那位少女再出來,可一連好幾天,一點兒動靜都沒有。書生想這少女準是老者的親屬,就打算前去拜見老者,想跟他結個好鄰居,然後再想法接近那少女。
待書生叩響府門,門上人對書生說:“我家主人性情耿直,不願意見客人。”把名帖還給書生,也不給他通報。書生沒精打采地回來了,第二天再去拜訪,這回連大門都不給他開了。從這之後,書生失魂落魄,天天對著樓呆望著,一個人胡思亂想,而讀書之聲卻沒有斷過。也不知道他這書到底讀進去沒有。
一日夜間,書生好像聽到樓上有輕微的腳步聲,門接著打開了,書生似乎看見紅袖在門邊一閃,正喜滋滋不眨眼珠地等著女子出來,忽聽颼颼聲響,一箭從簾裏射出來,書生一驚,趕忙躲閃,箭已著地,拾起一看,原來是用蠟做的箭頭。不大工夫,少女拿著弓箭出來,看見書生在那瞧她,好像很生氣,又拿箭射過來。書生這時已經看入了迷,不知道躲避,以為又是蠟做的箭頭,中上也沒什麼傷害,就抬著臉挨了一箭,正中麵頰,非常疼痛,拔箭一看,已經換了根繡花針了,臉上血直流到下頦上。那位少女看了大笑跑進樓去。
書生受了傷,在床上躺了好幾天。病輕起床後,也始終不怨恨那個女子,認為她是跟自己開玩笑才這麼調理自己,也在想或許是自己太過失禮,不應該對著女子看,轉念一想恐怕對自己也不是沒有意思。況且忍了一箭博得美女一笑,也還值得。病徹底好了以後,再看樓上,珠簾繡幕什麼也沒有了,門窗又像以前關鎖得嚴嚴的。書生一下子就像丟了魂似地,非常失望傷心,奇怪的是老者為什麼突然搬走了呢?到他門口去探看,老者根本就沒搬。
書生低聲下氣向看門人打聽,才知老者是山西人,很有錢,兩個兒子在外麵經商,家中隻有個老婆子和燒火做飯的丫頭,此外就沒有別人了。書生這才明白那少女原來不是人。想到這,不覺一片熱情頓然灰滅,但還是忘不了那女子的美貌,時不時就會想起來。於是得病,臥床不起。家人聽說後,請來醫生診視,書生隻是瞪著雙眼,直勾勾地望著,一句話也不說。全家人又吃驚又傷心,都說書生活不長了。沒多久,書生謔地從床上起來,神色怡然,好像沒病似的。家裏人更加驚疑害怕,團團圍住守護他。書生不讓他們守,他們不聽,說了三遍,家人這才一個一個地出去,躲在窗外偷聽,聽見書生好像對人說:“退出去了,退出去了,你怎麼不往前點來?”過一會兒,書生又說:“你開玩笑也開得太過分了,怎麼能拿人腦袋當靶子呢?”屋裏響起一陣陣的笑聲,笑完後才回答說:“不過試探試探你罷了,你卻一點不發火,既然知道我不是人類,卻不害怕,還是照樣想念我,想得生了病,你受苦了,你對我的一片深情也到了極點,所以我才來看你。”家人一聽這話,知道那女子是鬼,急忙推門進去,一起把書生抬回了家。
書生不住地悲傷,擔憂,一下子又病倒了,什麼藥都不見效。家人又請巫師來驅鬼除邪,書生反而看見那少女來了。少女笑著對書生說:“巫師豈能趕走我?正好引我進來,我早就想來看你,隻恨沒有機會。我們可趁這機會出去走一走。”來到女子住的樓中,在門邊拾到了一張斷了的弓和箭,書生問那女子:“這是用來射我的弓和箭嗎?”女子粲然一笑說:“是的,因為射傷了你,所以我才把它折斷了。”書生也笑了。書生於是就跟那個女子住在一起了。過了三天,書生從病榻上忽地一下子起來,聽見家人驚喜地說:“活過來了”書生對家人說一定要娶那女子,否則就要去死。家裏人雖不願意,但更不願他死,也就同意了,最後還是把那女子給他娶了回來。
書生家裏人都管她叫娥女。書生感念女子對自己的一片真情,就不再娶。就這樣相濡以沫過去很多年。等到書生死後,那女子也離開了。女子曾把活著時的一張小像拿出來給書生看,書生在上麵寫了一些字。書生死後,小像一直保藏在家。