招遠縣有一個書生叫張於旦,性情放蕩不羈,在一座荒廟裡讀書。當時,招遠縣的縣官是魯公,三韓人氏。他有一個女兒專好打獵。有一次,張生在野外遇到魯公女,見她長得風韻娟美,恣態秀麗;身穿錦緞貂皮襖,騎著一匹小馬駒,像畫上的人一樣。回到廟中,每每想起這女子的美貌,心裡總是念念不忘。後來聽說這女子忽然死了,張生悲傷得不得了。魯公因為距老家很遠,便把女兒的靈柩暫時寄存在張生讀書的荒廟裡。
張生因為和魯公女有一面之緣,對她非常崇敬,猶如對神明一般。他每早都到魯公女靈前燒香,吃飯時必定祭奠。每每舉著酒杯對著魯公女靈柩祝告說:「我才見了你一面,就常在夢裡想到你,沒想到你這玉一樣的人竟然死了。現在你雖近在我的身邊,但卻如遠距萬里河山,何等遺憾。我活著要受禮法約束,你死了的人該無禁忌了吧!你在九泉之下有靈的話,應當珊珊走來,以安慰我的傾慕之情。」
張生日日禱告,將近半個月。一天晚_上,他正在燈下讀書,忽一抬頭,見魯公女含笑站在燈下。張生驚訝地起來詢問,女子說:「感念你對我的一片真情,不能忘懷,所以不避私奔的嫌疑來與你相會。」張生大喜過望,二人於是共相歡好。此後,魯公女沒有一晚不來。她對張生說:「我生前好騎馬射箭,以射獐殺鹿為快事,罪孽很大,死了以後無處可去。若是你真的愛我,煩你替我念金剛經五千零四十八卷,我生生世世永遠不忘你。」張生恭恭敬敬地答應她的囑托,從此常常夜裡起來到魯公女柩前捻著佛珠誦經。一次,偶然碰上節日,張生想帶魯公女一起回家過節。女子擔憂自己腿腳沒勁,走不動。張生要背著她走,女子笑著同意了。張生像背個小孩一樣,一點不覺得重。此後,背著她走路就成了常事。張生考試時,也背她一塊去,但必須夜裡走。
有一年,省裡開科考試,張生要去赴考,女子說:「你福氣薄,去也是徒勞往返。」張生聽了她的話就沒去參加考試。又過了四五年,魯公罷了官,窮得沒有錢僱車把女兒的棺材運走,就打算就地埋了,但苦於沒有墳地。這事張生知道後,就對魯公說:「我有塊薄地在廟旁,願埋下你家女公子。」魯公大喜。張生又張羅著幫助料理葬事。魯公對張生非常感激,但也不知道張生是為了什麼。
魯公罷官回家去了,張生與魯公女仍然歡好如初。一天夜裡,女子依在張生懷裡,哭得淚如雨下,對張生說:「我們相好五年,現在要分別了!我受你的恩義,幾世都不足以相報。」張生驚訝地問她,她說:「承蒙你給我這九泉之下的人施加恩惠。現在你已為我念滿了經數,所以我得以托生到河北盧戶部家。若是你不忘今天,再過十五年的八月十六日,請你去盧戶部家相會。」張生也傷心地哭著說:「我現在已三十多歲了,再過十五年,我就快入棺材了,相會又能怎樣呢?」女子說;「到時願給你當奴婢作為報答。」一會兒,她又說:「你可送我六七里路。這半路上有很多荊棘,我穿著長裙子難以走路。」說罷,抱著張生的脖子,張生便送她上了大路。
到了大路上,見路旁有許多車馬,馬上有騎著一人的,有騎著兩人的;車已有的坐三人、四人的,甚至坐十幾個人的不等。唯有一輛以金花為裝飾掛著朱紅繡簾的車子,只有一個老婆子坐在裡面。老婆子見魯公女來了,就叫著:「來了?」女子答應:「來了。」女子回過頭來對張生說:「就送到這裡,你回去吧!不要忘了我剛才說的話。」張生答應著。女子就走到車前,老婆子伸手拉她上了車,鈴鐺一響,車馬就向遙遠的地方走去了。
張生無精打采地回到廟裡,將十五年後相會的日期記在牆上。想到唸經還有這樣大的作用,就更加誠心唸經。他夜裡做夢,夢見神人告訴他:「你志氣很好,但須要到南海去。」問神:「南海多遠?」神人說:「遠在天邊,近在眼前方寸之地。」醒後,他領悟了神人的意思,就念起菩提經來,修行更加誠心。
三年後,張生的大兒張政、二兒張明相繼高中。張生雖一下顯貴起來,可他仍然堅持修行。一次夢見一個青衣人請他,到了一座宮殿,見殿中坐著一個神,像是菩薩,迎接他說:「你行善可喜,可惜不能長壽,幸好請示了上帝,可以延長你的壽命。」張生跪下叩頭,菩薩叫他起來坐下,請他喝茶,茶香猶如蘭花。又叫童子領他到一個池子裡去洗澡。池水很清,裡邊的魚都看得很清楚。進入池中,水很溫熱,捧起來聞一聞,有荷葉香味。一會兒,他漸漸到了深處,失足陷入水底,水深沒了頭頂,一下子就驚醒了,大為驚異。從此,張生身體更加健壯,眼更明瞭,自己捋了一下鬍子,白鬍子都落了。又過一些時候,黑鬍子也落了,臉上也沒有了皺紋;又數月後,面目像兒童,跟十五六歲一樣。還好遊戲,也像個孩子,很不注意衣服飾物,禮儀小節。玩出了事,兩個兒子就去救他。不久他夫人老病去世了,張生的兒子們要給他娶大戶人家的女兒為繼室。他說:「等我到河北去一趟回來再說。張生屈指一算,已經到了與魯公女約定相會的時候了,便命人備馬率僕人到了河北。一打聽,果然有個盧戶部。
早先,盧公生一女兒,生下來就會說話,長大了更加聰明漂亮,父母最喜愛她。一些富貴人家來求婚,女兒都不願意。父母覺得奇怪,就問她,女兒詳細說了生前的姻緣。大家給她算了算時間,大笑著說:「傻丫頭!張郎現在已年過半百了,人事變遷,怕他屍骨都爛了;就是還活著,也老掉牙了。」女兒不聽,還是等著。母親見她決心不動搖,與盧公計謀,叫看門的不要通報客人,等過了約期,她就會絕望了。
果然不長時間張生就來訪問,看門的不給他通報。張生不得已回到旅店,心裡又不痛快又沒有辦法,就去郊外散心,也借此機會暗暗打聽女子的消息。
托生後的魯公女以為張生負約,終日哭泣,也不吃東西。母親對她說:「張生不來,一定是去世了。就是活著,違背了盟約,錯也不在你。」女子也不說話,終日躺在床上。盧公很憂心,也想知道張生到底是個什麼樣的人,於是托詞郊遊,正好遇到張生。一見是個少年,十分驚訝,互相談了幾句話,見張生風流瀟灑,盧公很喜歡,便邀他到家裡去。張生剛想問話,盧公忽然立起,叫客人等一下,自己匆匆進內房告訴了女兒。女兒很高興,自己奮力起床,出來一看,見長得不大像張生,就哭著回房了,埋怨父親誑她。盧公極力表明這個人就是張生,女兒也不說話,只是哭。盧公出來,情緒懊喪,對張生也不熱情接待了。張生問:「貴府有當戶部的嗎?」盧公隨便應了一聲「有」,眼睛向別處看,似乎不覺得有客人在。張生感到有些慢待自己,就告辭走了。
魯公女只是哭,幾天就哭死了。張生夜裡做夢,見魯女來對他說:「來找我的果然是你嗎?你年紀相貌都變了,見了面竟沒有認出。現在我已憂愁而死,煩你趕快到土地祠招回我的魂,還能復活,晚了就來不及了。」張生醒來,急忙去叫盧戶部的門,果然他女兒已經死了兩天了。張生悲慟欲絕,進屋弔唁一番,把夢中的事告訴了盧公。盧公聽從了他的話,急忙去土地祠招回了女兒的魂。又掀開被子,撫摸著女兒的屍體,一面叫女兒的名字,一面禱告。不多時,便聽到女兒喉嚨裡咯咯地響,見她朱唇一張,吐出一口冰塊樣的痰,漸漸呻吟起來。盧公高興得不得了,敬請張生客廳就坐,命人擺上酒宴,細問張生門第,才知道他家是巨族大戶,越發高興。於是選擇良辰吉日,命女兒與張生成了親。
張生在盧公府住了半個月,便帶著妻子回家,盧公親自護送女兒,並在張府住了半年才回家。
張生夫婦住在一起,真像小兩口一樣。很多人認為魯女的兒媳是她婆婆,因為她兒媳都近四十的人了。
盧公回家後,過了一年就死了。兒子很小,被豪強人家欺侮,家產幾乎都被人霸佔了。張生夫婦就把他接了來養著,成了一家人。