明朝時期,安慶有個叫林詩茵的寡婦,靠著兩畝地維持營生,下地忙活時,一隻身受重傷的毛驢朝她走過來,還跟她回了家,每日窩在棚子里不肯離去。林詩茵心地善良,早已給毛驢包紮好傷口。
毛驢身上的傷好後,整日都無精打采,突然在夜深人靜的夜晚鬱鬱而終。林詩茵好心將它安葬後,就做了一個怪夢,夢中毛驢站在她跟前,聲稱他就是林詩茵的丈夫凌末風。
事情要從半年前說起,彼時的林詩茵不僅生得如花似玉,還好打扮,每日收拾得花枝招展在外面晃悠,引來一批小伙的圍觀,其中一名小伙叫申屠洪,年過三十還沒有成婚,他是林詩茵的鄰居,為人有些貪財好色。

自從申屠洪得知林詩茵家住隔壁,就每日上門叨擾,時不時送來些吃食,胭脂水粉,用以討得林詩茵歡心,然而林詩茵已婚,要和外面的男子保持距離,沒有收下申屠洪的禮物,還多次勸他不要再上門。
可林詩茵的話對申屠洪沒有作用,她關上家門,房門也鎖死,申屠洪還是會先翻牆,再跳窗進來。
凌末風是個生意人,他半年來難得回家一次,傍晚剛到家就聽到林詩茵的哭訴,申屠洪要對她行不軌之事,凌末風氣得摔碎兩個茶碗,準備翌日即將他告上官府。

半夜,林詩茵起夜去茅房,回來發現房內有個黑衣人,臉上塗抹著濃厚的胭脂水粉,操起一柄尖刀朝著床上刺去,事畢翻窗出了家。借著微弱的月光,林詩茵隱約能分辨出黑衣人是申屠洪。
林詩茵走到床邊時,發現床上的凌末風已經氣絕身亡,她傷心欲絕地趴在凌末風身上痛哭流涕,回想起方才發生的一切,八成是申屠洪想要將她佔有,卻礙於凌末風沒能如願,就對凌末風痛下殺手。
翌日,林詩茵將她目睹到的一切,全都告訴了縣太爺,讓他主持公道,縣太爺當場下令將申屠洪緝拿歸案,卻由於缺乏物證,只能將申屠洪先押入牢房。

申屠洪想著他把臉塗花,就沒有人能分辨出他的身份,卻不成想還是被林詩茵給認出,事到如今不知該如何是好。這時他的表兄楚千里來牢房探監,得知申屠洪的所作所為,對他也是深惡痛絕,可他們畢竟是親信,楚千里要把申屠洪救出來。
楚千里所在的村莊有個強盜,燒殺劫掠無惡不作,前幾日才被縣衙逮捕到,楚千里在牢房找到強盜,聲稱要給強盜妻兒五十兩銀子,讓他們母子好好生活,只需強盜主動在縣太爺面前承認,是他殺害了凌末風。
強盜本身就是死刑犯,也不介意罪加一等,且他又疼愛妻兒,就答應楚千里的請求,按照楚千里的說法,將作案過程在縣太爺面前敘說一遍,縣太爺信以為真,遂將申屠洪釋放。

釋放後的申屠洪收斂了些,不再大張旗鼓叨擾林詩茵,卻還是會到林詩茵家中去,每次都趁著夜深無人之際,且凌末風也不在世,他動手都方便了不少。
然而死後的凌末風身上都是怨氣,魂魄一直遊盪在陽間,撞見一隻毛驢的屍身,就進入毛驢體內,回到林詩茵身邊,趁機教訓申屠洪,每次申屠洪半夜到家來,毛驢都狠狠將申屠洪撞倒在地,攆著他滿院子跑,將申屠洪弄得不敢露面。
可這種追打申屠洪的方式頗費體力,毛驢每次都累得氣喘吁吁,無精打采,毛驢覺得這樣也不是個辦法,就決定先下手為強,潛入申屠洪家中,將申屠洪追趕著不慎跌入枯井,一命嗚呼。

而今凌末風身上的怨氣全都化解,魂魄不能夠繼續留在人世,就準備從毛驢體內出來,要到陰曹地府轉世投胎,走之前特意和林詩茵道別。
話罷,林詩茵從夢中驚醒,流了滿臉的淚水,翌日到枯井旁查看,果真發現申屠洪的屍身。
村民們將申屠洪的屍身撈出來,找個地方安葬。

其實在毛驢變得無精打采後,林詩茵曾暗中觀察過毛驢,也發現了毛驢在頂撞申屠洪,還包括申屠洪在外面欺辱其他女子。
此後林詩茵一直守在家中,不到必要的時候都不出門,和外面的男子斷絕往來,直到守喪三年期滿,才找了個木匠改嫁。