太行人封雲亭,青年喪妻,十分寂寞,便到府城星去散心。有一天正在旅店裡歇息,一陣睡意朦朧,隱隱約約地看見牆上顯出一個年輕女子的身影,像是一幅畫懸在那裡。起初封生還嘲笑自己想老婆想瘋了,可凝神注視了好半天,畫影並不消失;再湊近細瞧,更清晰了:真真切切一個少女,卻是一臉苦相,伸著舌頭,脖上還掛著繩套。封生正在驚愕不定,那少女卻像要從牆上慢慢走下來。封生知道碰上吊死鬼了,然而大白天,膽子總是壯些,便說:「娘子不必嚇唬小生。您如有奇冤,小生可以為您效力。」這一說,女子身影真地落下來了,說:「你我萍水相逢,怎敢貿然以大事相托呢?然而九泉之下的枯骨,這麼多年了,舌頭縮不回去,繩套也脫不掉,實在是苦不堪言。求求您,讓主人砍斷這屋樑,燒掉它,您對我就恩重如山了。」封生答應去辦,影子也就消失了。封生就招呼店主人來,打聽這是怎麼回事。店主人介紹說:「十多年前,這裡是梅家的住宅。一天夜裡小偷進來,被梅家逮住了,送到縣府裡交給典史。不料典史接受了小愉的三百文錢賄賂,竟誣陷梅家女兒與小偷通姦,要把悔女拘上大堂,讓法醫檢驗。梅女聽說後,就上吊死了。不久,梅家夫婦也相繼去世,宅院就歸了我。這些年,旅客常說見鬼見怪的,可總也沒法兒讓它安靜下來。」封生便把吊死鬼的要求轉達給店主人。店主人一盤算,拆掉房頂換大梁,耗資太大,負擔不起,面有難色。封生便慷慨解囊相助,完成了這項工程。修好之後,封生依舊住在這座房子裡。
夜間,梅女來了,翩翩然一個萬福,向封生表示感謝。言談之間,喜氣洋洋,舉手投足,窈窕輕盈,原來是個十分秀氣的姑娘。封生不禁油然而生愛慕之心,侮女卻淒然而又羞澀地說:「鬼的陰氣,對您是有害的。再說這樣私合,我生前的恥辱,豈不是淘盡兩江之水也洗不清了嗎?咱們將來肯定會美滿地結合,現在還不到時候。」封生忙問:「要到什麼時候?」梅女嫣然一笑,不再作聲。封生說:「喝點酒吧?,梅女說:「我不會飲酒。」封生不禁笑起來:「而對美人,光是默默地對著眼兒看,又有什麼味道啊!」梅女說:「我生平的喜好,只有下打馬棋。可是只兩人下也不熱鬧;再說深更半夜的,也沒處去找棋盤。的確,長夜也夠難打發的,那我就跟您玩翻線花的遊戲吧。」封生只好依他。兩人促膝盤坐,封生叉開手指,梅女翻弄起來。真沒想到,這小小玩藝兒,竟然變幻無窮。工夫一長,封生竟糊塗起來,不知該如何動作了。梅女笑著教他,又用眼神示意,愈變愈奇,愈奇愈妙。封生樂不可支地說:「這真是閨房裡的絕技啊!」梅女說:「這玩法是我自己悟出來的。只要有這兩根線,就可以織成任何花紋圖案,不過一般人不細心揣摩罷了。」夜深了,玩累了,梅女就讓封生就寢。她說:「我是陰間的人。是不睡覺的。你自己歇息吧。我小時候懂點按摩術,願意奉獻小技,幫您做個美夢吧。」梅女開始按摩,先是兩手疊起,輕揉慢搓,從頭到腳按摩一遍。梅女細手所過之處,封生覺得骨肉鬆緩,像醉了似的,懶洋洋的。接著梅女又輕握拳頭細細捶擂了一遍,封生更覺得如同被棉絮團兒敲打一樣,渾身舒暢,妙不可言。擂到腰間,已經閉目合眼,懶懶地要睡了。到大腿,已經沉沉進入夢鄉。
封生一覺醒來,已是第二天中午。起床後只覺骨節輕鬆,渾身清爽,心裡更加愛慕梅女,繞著屋牆呼喚她的名字,卻沒有聲音答應。晚間,梅女才來了。封生心急地問:「你究意住在哪裡?叫我呼喚了個遍!」梅女笑笑說:「鬼哪有一定的住處,總之在地下就是了。」封生忙問:「地下有縫,能容下你嗎?」梅女又說:「鬼不見地,如同魚不見水一樣。」封生握住梅女的手說:「只要能讓你活過來,我傾家蕩產,在所不惜!」梅女笑了笑說:「也用不著傾家蕩產。」兩人又開始玩翻線花的遊戲,直到深夜。封生又苦苦逼迫梅女,梅女說:「你別纏我。有個浙江妓女,名叫愛卿,挺風流標緻的,新近就住在北鄰。明天晚上我招她來暫且陪你如何?」第二天晚上,梅女果然領來一個少婦,看去約三十歲,顧盼巧笑,媚眼飛情,一派風騷放蕩,這便是妓女愛卿了。三人湊在一起下「打馬棋」,棋罷梅女告辭,愛卿陪封生過夜。封生詢問愛卿的家世,愛卿含含糊糊,不肯明說,只是說:「您如果喜歡我,就用手指彈彈北間的牆壁,小聲喊『壺盧子』,我就會來。如果喊三聲還沒人答應,那就是我沒空兒,就別再喊了。」天明時,愛卿果然隱身到北牆上消失了。第二天晚上,梅女一個人來了,封生問愛卿為何不來,梅女說:「被高公子招去陪酒去了。」兩人坐下剪明燈燭敘談起來。正在興濃之際,梅女卻沉默了。一會兒動動嘴唇,像有話要說,可話到嘴邊又不出口。封生再三追問,梅女只是抽泣流淚,始終不肯明言。封生勉強拉她翻線花,到底打不起精神來,四更天便走了。
此後,梅女常與愛卿一起到封生住處來,說笑聲通宵達旦,因而這事傳遍了全城,遠近皆知。恰巧有位典史,家庭本是浙江的世族,因妻子與僕人通姦,被他休掉了;又娶了一個顧氏,感情倒是很好,不幸才一個多月就死了,所以心裡老是思念她。現在聽說封生有兩個鬼友,想向他打聽一點陰間情況,看自己與顧氏還有無緣分,於是騎馬來拜訪封生。起初,封生不肯應承,經不起這位典史苦苦哀求,便設筵請典史飲酒,答應晚間招鬼妓來商量。日落天黑,室內暗下來之後,封生走到北牆,邊敲邊小聲呼喚了三聲。話音未落,愛卿已經出現了。誰知她抬頭一見典史,面色突變,扭頭便走。封生正要上前攔阻,這位典史早已氣得抓起一個大碗猛投過去,隨著「嘩啦」一聲響,愛卿飄然消失了。封生大吃一驚,正要問是何緣故,忽然一個老太婆從暗室裡冒出來,開口便罵:「你這貪財害命的黑心賊!你砸壞了我家的搖錢樹!得賠我三十弔錢!」一邊罵,一邊掄起枴杖就打,恰巧打到典史的頭頂上。典史抱頭哀哭著喊:「那女子是顧氏,我老婆呀!我還正為她年輕輕的死了而哀痛呢,誰想到她作了鬼還不正經!可這與你這老婆子有何相干呢?」老太婆氣沖沖地斥責他說:「你本不過是浙江的一個無賴地痞,花錢買了這個臭官,戴上這條烏角帶子,鼻樑骨就倒豎起來朝了天啦!你當官有什麼黑白?袖裡有三百錢賄賂你,就是你親爹!你這神怒人怨的東西,死期就在眼前了!是你爹娘在陰司裡再三哀求,情願讓你媳婦入青樓當妓女,替你償還那些貪債,你自己還蒙在鼓裡哪!」說罷,掄起枴杖又打,典史嚇得在地上打滾哀叫。封生在旁邊又驚訝又著急,又想不出辦法排解。忽見梅女從房中出來,一見典史,登時氣得張目結舌,臉色全白了,撲過來摘下頭簪照典史就刺。封生更嚇壞了,趕緊用身子遮住典史,勸說:「他即使有罪,可死在這裡,小生就不好交待了。請您千萬投鼠忌器吧!」梅女一想,這才住手;又拉住老太婆:「那就為我封郎著想,暫時叫他再活一煞吧!」這位典史一見,慌忙抱頭鼠竄而去。聽說回到衙門就患了頭疼,半夜就死了。
第二天晚上,梅女來了,一見面就興高采烈地說:「真痛快!總算出了這口惡氣!」封生這才問:「你們究竟有何仇怨?」梅女說:「不是早就告訴你了嗎?受賄誣奸的,就是這傢伙!我含冤已經多年了。每每想求你替我伸冤昭雪,總是自愧對你還沒半點好處,所以才欲言又止。昨天碰巧聽見打架,偷偷一聽,沒承想正是仇人!」封生也驚訝地說:「原來他就是誣害你的那個壞蛋!」梅女說:「他在這縣裡當典史十八年了,我含冤而死也十六年了!」封生又問老太婆是誰,梅女說是一個老鴇兒;又問愛卿,梅女說:「她正在生病呢。」
大冤已報,梅女這才微笑著對封生說:「我當初說過結合有期,現在不遠了。你曾說過情願傾家蕩產贖我,自己還記著嗎?」封生說:「今天還是那份心思。」梅女說:「實話告訴你吧:我死的那天就已經轉生在延安展孝廉家了。只因為大仇未報,所以至今滯留在這裡。現在請你用新布做一個小口袋把我的鬼魂裝上,讓我隨著你去。你到那裡就向展家求婚,我保證他家一定答應。」封生還擔心兩家門第相差懸殊,不一定成功。梅女說:「放心,只管去吧。」又囑咐封生說:「途中千萬別呼喚我。待到成婚的晚上,將小布袋掛在新娘子頭上,趕緊呼喚『莫忘莫忘』,就大功告成了。」封生一一答應著。準備停當後,封生把小布袋打開,梅女跳了進去,然後一齊上延安。
延安果然有個展孝廉,有個姑娘,長相挺俊,就是有癡呆病,舌頭又常伸在唇外,就像大熱天狗喘氣一樣,難看又嚇人,所以十六歲了,沒有敢來提親的,這簡直成了爹娘的一塊心病。封生先登門遞上帖子,介紹了自家情況;然後托媒說親。展家自然高興,便把封生招贅到家中來。舉行婚禮的時候,新娘子依然傻乎乎的,什麼禮節也不懂,兩個婢女一邊一個扶著拖著才進了洞房。婢女們離開後,她竟然解開上衣大襟,露出乳房,直衝著封生憨笑。封生便取出小布袋掛在新娘子頭上低聲呼喚起來:「莫忘莫忘!」新娘子聽到呼喚聲,沉思起來,凝神對封生端詳著,目光漸漸亮起來。封生笑著說:「您不認得小生了嗎?」又舉著小布袋搖晃搖晃,新娘子清醒了,這才急忙掩上衣衿,兩人親親熱熱說笑起來。第二天清早,封生先上堂拜見岳父。展舉人安慰他說:「我閨女癡呆無知,蒙你看得起,既然成了親,你如有意,我家有些聰明丫鬟,你看中哪個,我一定贈給你,決不吝惜。」封生竭力辯白,說小姐並不傻,舉人倒疑惑不解起來。一會兒,女兒也上堂來拜親,舉止大方知禮,舉人更加驚異,女兒微微一笑而已。舉人詢問其中緣故,女兒羞澀難說,還是封生從旁把情由大體述說一番。舉人更加高興,比以前更疼愛這個女兒。從此讓兒子大成與封生一塊兒讀書學習,一切供應都很豐盛。
過了一年多,先是大成逐漸對封生流露出瞧不起的神色,郎舅之間不再和睦;接著奴僕們也看人下菜碟,開始在主人面前講封生的壞話。展舉人聽多了流言蜚語,對封生的禮數也不那麼講究了。展女覺察到這些,就勸封生說:「丈人家終究不是長久住處。那些長住丈人家的,全是些廢物。趁現在還沒有大裂痕,咱還是早點回家吧。」封生也深以為然,於是向岳父告辭。舉人想留下閨女,展女不願意。這一來,父親加兄長都火了,索性不給車馬。展女便拿出自己的首飾變賣了,雇了一套車馬回家。後來舉人還寫信讓女兒回娘家看看,展女堅持不去。直到封生中舉,兩家才通好往來。