從前,山東陽谷縣田沖鎮有個漢子名叫吳小牛,靠給人做挑夫為生。前不久,他娶了鄰灣一個叫曹大蘭的姑娘為妻。曹大蘭生得貌美,溫柔可人,夫妻倆十分恩愛。
婚後不久,吳小牛出門給人運送鹽巴,好些天都沒有回來。曹大蘭心中惦記丈夫,在床上翻來覆去難以入眠。就在這時,突然外面傳來一陣急促的敲門聲。她開門一看,卻是與丈夫一起做挑夫的王二。只見王二衣衫凌亂,滿臉血污。原來他們經過青山口時,遇到了打劫的,吳小牛被人當場砍死。王二滾進山溝,才逃得一條性命聽說丈夫已死,曹大蘭雙眼一黑,昏了過去,被王二搖醒後就號啕大哭。丈夫死後,曹大蘭一天到晚淚水漣漣。田沖鎮鹽行的老闆陳運昌因吳小牛是為他運鹽遭劫,於是隔三差五就派人送銀子來,曹大蘭一時也衣食無憂。
一天深夜,曹大蘭突然被一陣男人的哭聲驚醒。她到窗前一看,只見院子的半空懸著一條黑影,披頭散髮,體形與丈夫十分相似。難道是丈夫的魂魄回來了?她頓時感到毛骨悚然。
第二天半夜,哭聲再起,而且比昨晚哭得更加淒慘。那黑影邊哭還邊朝房門走來,曹大蘭嚇得抱著被子不敢入睡。聽人說三清觀的張道長頗有法力,於是曹大蘭便將張道長請來幫忙捉鬼。張道長在房前屋後轉了幾圈,說那鬼是她的丈夫吳小牛的鬼魂,由於捨不得她,陰魂不散,又找了回來。為了驅鬼,張道長在院子裡誦經唸咒作了一陣法,離開時又給了她幾道符,讓她貼在門窗和床頭上。或許是符的作用,之後一連幾個晚上總算相安無事。
一天半夜,曹大蘭突然夢見丈夫從外面回來,還給她帶回不少首飾和禮品。她並不覺得害怕,還撲到他的懷裡醒來時,曹大蘭發現自己身上一絲不掛。回想夢中的情形,她不由一怔:難道昨晚丈夫真的回來過?接下來一連幾晚她都夢見和丈夫在一起。沒過多久,她出現了噁心、厭食等反應。開始,她以為自己患上了什麼病,找郎中一把脈,才知道自己有了喜。這就怪了,難道夢中和鬼魂交媾也能懷孕?丈夫死了這麼久,自己孤身一人居然懷上孩子,外面的人會怎樣看自己
就在曹大蘭無計可施時,突然吳媒婆受人之托給她做媒來了,說男方是田沖鎮的一戶生意人家,前不久剛死了娘子,想娶個填房。曹大蘭本不想再嫁人,可這不爭氣的肚皮一天天大起來,如果真的被人瞧出破綻,怕是一人一口唾沫也能把她淹死萬般無奈,曹大蘭只得答應了這門親事。
娶她的這戶人家不是別人,正是田沖鎮鹽行的老闆陳運昌。嫁到陳家來不到半年,曹大蘭就生下一個女兒,但陳運昌毫不介意,並將女兒視作己出。這一來更令曹大蘭感到難為情。只是沒過多久女兒就病死了,曹大蘭十分傷心。好在陳運昌對她十分疼愛。時間一長,曹大蘭也就漸漸想開了。
這年中秋夜,陳運昌和曹大蘭飲過桂花酒,一同在後花園內賞月。曹大蘭感到身上有些涼意,就進屋穿衣服,只剩陳運昌一個人在後花園。就在這時,陳運昌聽見一聲怪叫。他扭頭一看,只見牆邊不知什麼時候出現個斷頭人,一顆頭倒掛在胸前,脖子處還在往外冒血。那人用手拎著頭上的兩隻耳朵把頭往脖子上一裝,陳運昌看出那人竟是吳小牛,披頭散髮,面如死灰,七竅流血,形態異常得恐怖猙獰。那人甕聲甕氣地喝道:「陳運昌,你這狼心狗肺的東西,快快還命來,還我娘子來!」說罷雙手一鬆,頭又掉下去掛在了胸前。陳運昌嚇得屁滾尿流,雙腿一軟跪在地上。吳小牛一個縱步跳到他跟前,用冰冷的手卡住他的脖子喝道:「快將你所幹的壞事如實招來,否則要了你的命!」陳運昌戰戰兢兢地說:「小牛兄弟饒命,我說我說」於是不得不將自己的所作所為全說了出來。原來,吳小牛和曹大蘭成婚的那天,陳運昌去參加了他們的喜筵。他見到曹大蘭後竟害起了相思病,一天到晚寢食不安。陳運昌覺得要想把曹大蘭弄到手,唯一的辦法就是除掉吳小牛。剛好那陣子鹽鋪有批鹽要運到宜昌去,於是陳運昌買通幾個地痞扮作劫匪打劫了鹽隊,當場將吳小牛殺死。除掉心腹大患後,陳運昌開始打曹大蘭的主意。他先是半夜三更用竹竿吊著個紙人兒垂到院子裡,扮成吳小牛的鬼魂啼哭。然後陳運昌又買通三清觀的張道長,讓他說是吳小牛的魂魄回來了,讓曹大蘭不懷疑是有人在裝神弄鬼。隨後陳運昌就潛入曹大蘭院內,朝房內噴上迷香,等曹大蘭處於半睡半醒的狀態,他就撥開門栓進去施奸。而曹大蘭由於迷香的作用,以為是夢,沒有介意。時間一長,曹大蘭竟懷上了他的孩子。陳運昌見時機成熟,便用砒霜將自己的老婆毒死,然後請吳媒婆做媒將曹大蘭娶了過 來陳運昌說完,像搗蒜泥似的不住磕頭求吳小牛饒命。等他抬起頭來時,哪還有吳小牛的影子?卻見曹大蘭不知什麼時候來到跟前,一雙怒目正死死地盯著他。原來吳小牛的魂魄審問陳運昌時,陳運昌招認的那些話曹大蘭都聽到了。她抓住陳運昌的衣服叫道:「你這狼心狗肺的東西,表面上裝得像個正人君子,肚裡卻裝滿了壞水。你害死了我的丈夫,還害得我失節,我要殺了你!」陳運昌忙抓住她的手哀求道:「娘子,我是真心喜歡你的,我這樣做都是為了你」好不容易才將曹大蘭哄住。
第二天早晨,陳運昌還在睡夢中,突然被一陣急促的敲門聲驚醒。他開門一看,卻是田沖鎮縣衙的捕快。原來曹大蘭又氣又恨,連夜上縣衙敲響了驚堂鼓。陳運昌被帶到衙門後,對曹大蘭的指控拒不承認。就在這時,衙役將扮劫匪打劫鹽隊的那幾個地痞押了出來。證據確鑿,陳運昌才不得不低頭認罪。田沖鎮知縣當即將陳運昌判成死罪,秋後問斬,其餘的人被判充軍。
終於給丈夫伸了冤,曹大蘭不再有牽掛。她來到江邊,心想小牛不在了,自己活著還有什麼意思?不如死了算了,這樣就可以跟他在一起了於是雙眼一閉,跳入波濤滾滾的江中。
曹大蘭醒來時,發現自己躺在一個人的懷裡。她定睛一看,那人竟是她的前夫吳小牛,她含淚說:「夫君,你到底是人還是鬼?我這不是在做夢吧?」
吳小牛抓住她的手說:「這不是夢,我還活著」接著說出了事情的始末。原來,陳運昌指使地痞假扮劫匪刺殺吳小牛時,沒有將他砍死。第二天天亮時,一個雜耍班路過那裡救了他。傷癒後,雜耍班的領班見他腰粗膀圓,剛好雜耍班有個節目叫「誇父擔山」,領班便讓他演誇父,沒想到他演得十分出色,從此便留在了雜耍班。前不久,雜耍班到田沖鎮來演出,吳小牛抽了個空回去看妻子,在半路上遇到扮劫匪打劫鹽隊的一個地痞。吳小牛尾隨地痞走到一僻靜處,衝上去將刀架在了那地痞的脖子上。地痞嚇得魂不附體,不得不將陳運昌如吳雇他和另外幾個人扮劫匪害死吳小牛的事說了出來。吳小牛又氣又恨,當即拉了他去見官。田沖鎮知縣根據那地痞提供的線索將所有打劫鹽隊的人全部抓獲。吳小牛又連夜來到陳府,用在雜耍班學到的本領扮鬼去見陳運昌。陳運昌做賊心虛,以為真的是吳小牛的鬼魂顯靈,嚇得魂不附體,將自己如吳害死吳小牛、怎樣裝神弄鬼把曹大蘭弄到手的經過說了出來陳運昌受到嚴懲,而曹大蘭並不知道吳小牛還活著,打算跳江殉情,正好被趕來的吳小牛救起。
吳小牛說:「娘子,你為什麼這麼傻?」曹大蘭說:「我對不起你」吳小牛說:「對不起我們的應該是陳運昌那個狗賊!吳況我們的好日子才剛剛開始,為什麼要死呢?」從此,夫妻倆就跟著雜耍班走南闖北,再也沒有回來。而當地的人並不知道吳小牛還活著,以為是吳小牛的鬼魂把曹大蘭接走了。於是吳小牛鬼魂奪妻的故事便在這一帶流傳下來。