順天府的陳孝廉,十六七歲的時候,曾經跟隨一位私塾先生在僧寺中讀書。同學很多,其中有一個姓褚的同學,自稱是山東人,刻苦攻讀鉆研,一刻也不休息。而且這個同學寄宿在學校里,從未見他回過一次家。陳生與他最要好,因而就詢問他為什么不回家。回答說:我家里很窮,籌措學費不容易。我即使做不到珍惜每一寸光一陰一,如果每天加上半個夜晚,那么我的兩天就可以抵得上別人的三天。陳生聽了他的話很受感動,就想搬來床鋪和他一起住。勸阻他說:暫且不要這樣做!我看先生的學識已經不能做我們的老師了。阜城門有一位呂先生,年紀雖然很老了,卻可以做我們的老師,請你和我一同到他那里去求學吧。原來京城中教私塾的大多按月計算收取學費。月底學費用完了,學生們可以按自己的意愿繼續留下或者離開。于是陳、褚二人就一同去拜見呂老先生。呂老先生是浙一江一有名的讀書人,因落魄窮困而不能回鄉,只好靠教兒童啟蒙糊口,這實在不是他的志向。所以,他得到陳、褚兩個學生后非常高興。而又很聰明,讀書一過目就懂了,呂先生特別器重他。陳、褚兩人感情十分親密,白天同桌讀書,晚上共睡一床。到了月底,忽然請假回去了,十幾天沒再回來,大家都感到很奇怪。
一天,陳生因為有事到了天寧寺,在廊下遇見了,他正在把苘麻劈城小條,蘸上硫黃,制成引火的用具。見到陳生后,現出羞慚不安的神情。陳生問道:你為什么突然停止讀書了?握住陳生的手,把他請到一邊,很難過地說:因為家窮沒有錢給先生作學費,所以必須做半個月的買賣,才能讀一個月的書。陳生感慨了很長時間,說:你盡管回去讀書,我自當盡力幫助你。就叫仆人收拾起的工具,兩人一同回到學校。囑咐陳生不要泄漏這件事情,只假托個理由去告訴先生。陳生的父親本是個開店鋪的商人,靠做買賣致富,陳生常偷父親的錢,替一交一納學費。陳父因為丟失了錢而責問陳生,陳生就把實情告訴了父親。陳父認為陳生是個書呆子,就叫他停學了。感到十分慚愧,拜別老師準備離去。呂老先生知道了其中的緣故,就責備他說:你既然這樣貧困,為什么不早告訴我?于是把錢全部退還給陳父,留下像往常一樣讀書,跟他一起吃飯,對待他就像自已的兒子一樣。陳生雖然不入館讀書了,卻常常邀請到酒店共飲。本來為了避嫌不肯去,可陳生邀請他也越發堅決,常常流下淚來。不忍心拒絕他,于是與陳生就來往不斷了。
過了兩年,陳生的父親死了,陳生又要求跟呂老先生讀書,呂老先生被他的誠意感動了。就收下了他。但陳生由于停學已經很久,和相比差距很大了。過了半年,呂老先生的長子從浙一江一一路討著飯到京城來尋找父親。學生們湊集了一些錢給呂老先生作回鄉的路費,可是只有流著眼淚依戀不舍而已。呂老先生臨別時,囑咐陳生要把當作自己的老師對待。陳生答應了,請住到自己家里當自已的老師。過了不久,陳生考中了秀才,又以遺才科的身份參加鄉試。陳生擔心自己不能把文章寫完,主動請求代替他去參加考試。到了鄉試的日期,帶了一個人來,說是自己的表兄劉天若,囑咐陳生暫時跟著他去。陳生剛剛出門,忽然從后邊拉他,陳生身體幾乎跌倒,劉天若急忙挽住他一同走了。他們游覽眺望了一陣子以后,就一同在劉天若家中住下了。劉家沒有婦女,他就讓客人住在了內院。住了幾天,不知不覺到了中秋節了。劉天若說:今天李皇親的花園中游人很多,我們也應當去舒散一下心頭的煩悶,順便送你回家。于是,劉天若就叫馬僮挑著茶炊、酒具前去。只見水中樓臺,梅花形的亭閣里,人聲喧嘩嘈雜,不能進入。走過了一道水閘,便見在老柳樹下橫著一條畫舫,他們就互相扶著登上船去。兩人酒過數巡,很感寂寞。劉天若伸頭對書僮說:梅花館最近有新來的妓一女,不知在家不在?書僮去了一會兒,就和一位女子一同回來了。原來是妓一院的李遏云,她是京城的名妓,詩寫得很好,又善于唱歌。陳生曾經和朋友一起在她家喝過酒,所以認識她。兩人相見,略為問候了幾句。李姬臉上帶著悲哀憂愁的神色。劉天若叫她唱歌,她就唱了一支《蒿里曲》。陳生很不高興地說:我們主、客兩人即使不能使你滿意,也不致于對著活人唱挽歌!李姬站起來表示了歉意,勉強露出了笑臉,就唱了一支詞曲濃艷的歌曲。陳生高興了,握住李姬的手腕說:你過去寫的《浣溪紗》詞我讀了好幾遍,現在都忘了。李姬就吟道:淚眼盈盈對鏡臺,開簾忽見小姑來,低頭轉側看弓鞋。強解綠蛾開笑面,頻將紅袖拭香腮,小心猶恐被人猜。陳生反復吟詠了好幾遍。不一會兒,船靠岸停下。他們上岸后走過長廊時,陳生見長廊壁上題詩很多,就拿起筆來把那首《浣溪紗》詞寫在壁上。這時天色已近傍晚了,劉天若說:考場中的人快出來了。就送陳生回家。陳生進了家門,劉天若就告別回去了。陳生見室內昏暗無人,稍一遲疑,已經走進門來,他細看了看,卻不是。正感到疑惑的時候,那人忽然走近自己身邊跌倒了。這時家里仆人們說:
公子疲勞極了!一齊來拽他扶他;陳生又覺得跌倒的不是別人,而是自己。他站起來后,看見站在旁邊,恍恍惚惚好像是在夢境中。陳生屏退了仆人追問這件事,說:告訴你不要吃驚:我其實是個鬼,很早就應該投生轉世了。所以在這里一拖再拖,是因為不能忘記你對我的深厚情誼,因此附在你身上,以便代替你去參加鄉試。現在三場考試已經結束,我的愿望也了結了。陳生又請求他代替自己參加會試。說:你的父輩福薄,慳吝之人的骨格,承受不了誥贈的榮耀。陳生問:你將要到哪里去?說:呂老先生與我有父子的情分,我經常掛在心上而不能忘。我的表兄在一陰一間衙門里掌管簿籍,我求他向地府主管者說情,或者能有希望作他的子嗣。于是告別而去。陳生覺得這件事很奇異,天明后就去拜訪李姬,想問問泛舟游湖的事,但是李姬已經死了好幾天了。他又到李皇親花園中去,見廊壁上自己題的那首《浣溪紗》詞仍在,只是墨色淡而模糊,好像就要磨滅了一樣。這才明白題寫詩的是自己的魂,而作詞的李姬是個鬼。到了晚上,滿面喜色地來了,說:所求之事幸而成功了,現在要向你告別了。于是伸出兩只手來,叫陳生在手心里各寫上褚字作為標志。陳生要設酒宴為他餞行,搖頭說:不必了。你如果不忘我們往日的一交一情,鄉試發榜以后,不要怕路途遙遠艱險,到浙一江一來看望我。陳生流著淚送他,看見有一個人在門外等候著,還在依依不舍,這個人用手按著的頭頂,就隨著他的手變扁了。這個人用手把捧起來放入一個口袋中,背著走了。
過了幾天,陳生果然考中了舉人。于是治備了行裝前往浙一江一。呂老先生的妻子幾十年不生育,五十多歲了,忽然生了一個男孩,兩只手緊緊握住不能伸開。陳生到了呂家,要求見見小孩,并說手掌中一定有個褚字。呂老先生不信。小孩見了陳生,十指自動伸開了,一看他的手掌心,果然各寫著一個褚字。大家很驚奇地問起原因,陳生就把這事原原本本地告訴了他們。大家又喜歡又驚奇。陳生豐厚地贈送給呂老先生一筆錢,才告辭回家。后來,呂老先生以歲貢的資格,到京城參加廷試,住在陳生家里。這時呂老先生的小兒子才十三歲,已經考中秀才了。