從前,山東陽穀縣田衝鎮有個漢子名叫吳小牛,靠給人做挑夫為生。前不久,他娶了鄰灣一個叫曹大蘭的姑娘為妻。曹大蘭生得貌美,溫柔可人,夫妻倆十分恩愛。
婚後不久,吳小牛出門給人運送鹽巴,好些天都沒有回來。曹大蘭心中惦記丈夫,在床上翻來覆去難以入眠。就在這時,突然外麵傳來一陣急促的敲門聲。她開門一看,卻是與丈夫一起做挑夫的王二。隻見王二衣衫淩亂,滿臉血汙。原來他們經過青山口時,遇到了打劫的,吳小牛被人當場砍死。王二滾進山溝,才逃得一條性命聽說丈夫已死,曹大蘭雙眼一黑,昏了過去,被王二搖醒後就號啕大哭。丈夫死後,曹大蘭一天到晚淚水漣漣。田衝鎮鹽行的老板陳運昌因吳小牛是為他運鹽遭劫,於是隔三差五就派人送銀子來,曹大蘭一時也衣食無憂。
一天深夜,曹大蘭突然被一陣男人的哭聲驚醒。她到窗前一看,隻見院子的半空懸著一條黑影,披頭散發,體形與丈夫十分相似。難道是丈夫的魂魄回來了?她頓時感到毛骨悚然。
第二天半夜,哭聲再起,而且比昨晚哭得更加淒慘。那黑影邊哭還邊朝房門走來,曹大蘭嚇得抱著被子不敢入睡。聽人說三清觀的張道長頗有法力,於是曹大蘭便將張道長請來幫忙捉鬼。張道長在房前屋後轉了幾圈,說那鬼是她的丈夫吳小牛的鬼魂,由於舍不得她,陰魂不散,又找了回來。為了驅鬼,張道長在院子裏誦經念咒作了一陣法,離開時又給了她幾道符,讓她貼在門窗和床頭上。或許是符的作用,之後一連幾個晚上總算相安無事。
一天半夜,曹大蘭突然夢見丈夫從外麵回來,還給她帶回不少首飾和禮品。她並不覺得害怕,還撲到他的懷裏醒來時,曹大蘭發現自己身上一絲不掛。回想夢中的情形,她不由一怔:難道昨晚丈夫真的回來過?接下來一連幾晚她都夢見和丈夫在一起。沒過多久,她出現了惡心、厭食等反應。開始,她以為自己患上了什麼病,找郎中一把脈,才知道自己有了喜。這就怪了,難道夢中和鬼魂交媾也能懷孕?丈夫死了這麼久,自己孤身一人居然懷上孩子,外麵的人會怎樣看自己
就在曹大蘭無計可施時,突然吳媒婆受人之托給她做媒來了,說男方是田衝鎮的一戶生意人家,前不久剛死了娘子,想娶個填房。曹大蘭本不想再嫁人,可這不爭氣的肚皮一天天大起來,如果真的被人瞧出破綻,怕是一人一口唾沫也能把她淹死萬般無奈,曹大蘭隻得答應了這門親事。
娶她的這戶人家不是別人,正是田衝鎮鹽行的老板陳運昌。嫁到陳家來不到半年,曹大蘭就生下一個女兒,但陳運昌毫不介意,並將女兒視作己出。這一來更令曹大蘭感到難為情。隻是沒過多久女兒就病死了,曹大蘭十分傷心。好在陳運昌對她十分疼愛。時間一長,曹大蘭也就漸漸想開了。
這年中秋夜,陳運昌和曹大蘭飲過桂花酒,一同在後花園內賞月。曹大蘭感到身上有些涼意,就進屋穿衣服,隻剩陳運昌一個人在後花園。就在這時,陳運昌聽見一聲怪叫。他扭頭一看,隻見牆邊不知什麼時候出現個斷頭人,一顆頭倒掛在胸前,脖子處還在往外冒血。那人用手拎著頭上的兩隻耳朵把頭往脖子上一裝,陳運昌看出那人竟是吳小牛,披頭散發,麵如死灰,七竅流血,形態異常得恐怖猙獰。那人甕聲甕氣地喝道:“陳運昌,你這狼心狗肺的東西,快快還命來,還我娘子來!”說罷雙手一鬆,頭又掉下去掛在了胸前。陳運昌嚇得屁滾尿流,雙腿一軟跪在地上。吳小牛一個縱步跳到他跟前,用冰冷的手卡住他的脖子喝道:“快將你所幹的壞事如實招來,否則要了你的命!”陳運昌戰戰兢兢地說:“小牛兄弟饒命,我說我說”於是不得不將自己的所作所為全說了出來。原來,吳小牛和曹大蘭成婚的那天,陳運昌去參加了他們的喜筵。他見到曹大蘭後竟害起了相思病,一天到晚寢食不安。陳運昌覺得要想把曹大蘭弄到手,唯一的辦法就是除掉吳小牛。剛好那陣子鹽鋪有批鹽要運到宜昌去,於是陳運昌買通幾個地痞扮作劫匪打劫了鹽隊,當場將吳小牛殺死。除掉心腹大患後,陳運昌開始打曹大蘭的主意。他先是半夜三更用竹竿吊著個紙人兒垂到院子裏,扮成吳小牛的鬼魂啼哭。然後陳運昌又買通三清觀的張道長,讓他說是吳小牛的魂魄回來了,讓曹大蘭不懷疑是有人在裝神弄鬼。隨後陳運昌就潛入曹大蘭院內,朝房內噴上迷香,等曹大蘭處於半睡半醒的狀態,他就撥開門栓進去施奸。而曹大蘭由於迷香的作用,以為是夢,沒有介意。時間一長,曹大蘭竟懷上了他的孩子。陳運昌見時機成熟,便用砒霜將自己的老婆毒死,然後請吳媒婆做媒將曹大蘭娶了過