安慶有一個姓戴的書生，年輕時行為不撿，不拘小節。一天，他喝醉了酒，在 回家的路上遇到了已經死去的表兄季生。他醉酒後兩眼昏花，竟忘了他已經死了，便問道：“你一向在什麼地方？”季生說：“我已經到了陰間，難道你忘記了嗎？”戴生這才恍然大悟，但酒醉之中也不感到害怕，問道：“在陰間做什麼呢？”季生回答說：“最近在轉輪王殿下那裏掌管文簿。”戴生說：“那麼人間的禍福，你一定都知道了？”季生說：“這是我的職責，怎麼會不知道。但是過於繁瑣，不是我很關切的，不能全部記得，三天前我偶然檢查簿冊，還看見你的名字。”戴生急忙問上面寫了些什麼，季生說：“我不敢騙你，你的大名已經列在黑暗獄中了。”戴生很害怕，酒也醒了，苦苦哀求季生救他。季生說：“這不是我替你出力就能辦到的事，只有積德行善才可改變。但是你已經惡貫滿盈，沒有大的善行不可能再挽回來。但是一個窮秀才能有多大的能力呢？即使每天都能做一件善事，沒有一年多的時間也不能抵償你的罪惡，現在已經太晚了。但是，如果你從現在開始身體力行做善事，即使進了地獄，可能也還有出來的一天。”
戴生聽完，痛哭流涕，趴在地上向季生苦苦哀求。等他抬起頭來，季生已經無影無蹤了。戴生怏怏不樂地回了家，從此，洗心革面，痛改前非，再也不敢有什麼差錯了。
此前，戴生和鄰居的婦人有私情，鄰居聽了這事並不聲張，想找個機會把他當場抓住。但是自從戴生改過自新以後，就和那婦人斷絕了往來，鄰居找不到機會抓他，心中很憤恨。
一天，戴生和鄰居在田間相遇，鄰居假裝和他說話，騙他去看一口廢井，趁機把他推到井裏去了，那口井有好幾丈深，鄰居認為戴生必死無疑，而戴生半夜裏蘇醒過來，坐在井中放聲大哭，但是沒有人聽見。鄰居惟恐戴生又活過來，過了一晚去聽動靜，聽到他的哭聲，急忙往裏面扔石頭，戴生躲到井底的洞裏，再也不敢出聲，鄰居知道他還沒有死，便挖土填井，幾乎把井都填滿了。
洞中漆黑一片，真是和地獄沒什麼區別。洞裏空蕩蕩的，沒有什麼吃的，戴生料想自己是活不長了，他匍匐著往前行，但是三步以外都是水，沒法子過去，就又回到原處。起初他還覺得腹中饑餓，時間一久竟然也就忘記了，他於是想，在這地下也沒有善事可做，只有不斷地念佛而已。不一會兒，只見磷火飄浮，螢光閃閃，飄得滿洞都是，他於是禱告道：“聽說磷火都是冤鬼，我雖然暫時還活著，但是估計也回不到人間了，如果可以一起說話，也可以安慰一下我寂寞的心。”
只見磷火漸漸地順著水面漂過來，每一團磷火中都有一個人，身高只有正常人的一半。戴生便問他們從那裡來。磷火回答道：“這口井是古代的一口煤井，當年主人挖煤時，震動了古墓，被龍飛相公引來地海的水，一下子淹死了四十三個人，我們都是鬼。”戴生問道：“那龍飛相公是什麼人？”磷火回答說：“我們也不知道，相公是讀書人，現在是城隍的幕客，他也可憐我們無辜而死，過三四天就施捨一次粥給我們。我們天天遭受冷水泡骨的痛苦，看來也不可能脫離苦海，您如果能再回到人間，請撈出我們的屍骨，合葬在一座義塚裏，就是給我們最大的恩惠了。”戴生說：“萬一我能回到人間，這件事做起來沒有什麼困難。但是我現在身處九泉之下，又怎麼敢指望能夠重見天日啊！”於是就叫眾鬼念佛，數著煤塊來代替佛珠，記下念了多少佛。這樣，戴生也不知道時間的早晚，困了就睡覺，醒了就端坐在那裏。
忽然，洞的深處點起了盞燈籠，眾鬼歡喜地說：“龍飛相公施捨吃的來啦！”便邀請戴生一起去。戴生擔心有水過不去，眾鬼強拉硬扶地往前走，戴生只覺得飄飄然好像叫沒有踏在地上。曲曲折折地走了半里多，來到一個所在，眾鬼將戴生放下，讓他自己走。他們踏步向前，好像上了一個幾十尺高的臺階，臺階的盡頭出現了房屋和走廊，大堂上點著蠟燭，像胳膊一樣的粗。戴生好久沒看見火光，高興極了，急忙跑上前去。
大堂上坐著一位老者，身穿儒服，頭戴儒巾。戴生停住腳步，不敢上前。老頭已經看見了他，驚訝地問道：“這個活人是從那裡來的？”戴生走上前去，跪在地上述說情況。老者說：“原來是我的後代呀！”於是讓他起來，並賜他入座，老者自己介紹說：“我叫戴潛，字龍飛。從前因為不肖子孫戴堂，勾結敗類，在墓邊挖井，使我住得很不安穩，所以引來海水把井淹沒了。如今，他的後代怎麼樣？”
原來，戴家近宗共有五支，戴堂為長房。起初，縣裏的大戶人家賄賂戴堂，在戴家祖墳的旁邊挖煤。眾兄弟畏懼他的權勢，誰也不敢爭辯。不久，地下水突然沖來，採煤的工人全部淹死在井裡。那些死者的家屬，紛紛到官府告狀，戴堂和那大戶人家因此都被弄窮了，戴堂的子孫最後都貧得沒有立錐之地。戴生是戴堂弟弟的後代，曾經聽先人說起這件事，便告訴了老者。
老者說：“這樣的不孝子孫，他的後人可能昌盛嗎？你既然來到這裏，就不應當荒廢了學業。”說完，老者就拿出酒菜給他吃。吃完飯，又在桌子上放了些書，都是成化、弘治年間的八股文章，強迫戴生研讀。老者又給他出題作文，好像老師教徒弟一樣。大堂上的蠟燭常明，不剪燭心也不會熄滅。戴生困倦的時候就睡覺，也分不清早晨和夜晚。老者有事出去，就派一個小僮服侍戴生。這樣，感覺過了幾年的時間，所幸的是並怎麼辛苦，但是沒有別的書讀，只有一百來篇八股文，每一篇都讀了四千多遍。
一天，老者對戴生說：“孩子，你罪孽的報應已經滿了，應該回到人間去了，我的墓靠近煤洞，陰風刺骨，你得志以後，把我的墓遷到東邊去。”戴生恭恭敬敬地答應了。老者於是將眾鬼叫來，讓他們仍舊把戴生送到原來坐著的地方。眾鬼圍著老者行禮，老者再三叮囑，但是戴生也不知道有什麼辦法可以出去。
此前，戴生失蹤後，他家裏的人到處找也沒找到。他的母親告到官府，縣官抓了好幾個嫌疑犯，但還是沒有查出什麼線索。過了三四年，這位縣官離任，搜尋工作也就鬆弛下來了。戴生的妻子在家中不守婦道，戴家便將她遣嫁出去。恰好鄉里的人重修舊井，下到洞中發現了戴生，一摸，發現他還沒有死，不由大為驚駭，急忙到他家報信。戴生被人抬回家，過了幾天，才恢復過來，開始敍述他在地下的經歷。
自從戴生被鄰居推到井裏以後，鄰居打死了自己的妻子，被他的岳父告到了官府。官府駁問審訊了一年多，把這人折磨得只剩下皮包骨頭才回家去。他聽說戴生死而復活，嚇得要死，就逃走了。戴氏族人商議要追究鄰居的罪過，戴生不同意，並且說以前確實是咎由自取，在井下受的苦是陰間對他的懲罰，和那鄰居沒有什麼關係。鄰居知道戴生確實不再追究，這才偷偷地回了家。
井水乾了以後，戴生雇人進到井洞中收拾眾鬼的殘骨，將各人拼湊整理好，買來棺材，找了地方，將眾鬼合葬在一座墳墓裏。他又查家譜，確實有一個前輩名叫戴潛，字龍飛。於是他擺上供品，到龍飛相公的墓前拜祭。當地的學使聽說了這件怪事，又欣賞戴生的文章，在科舉考試中以優等生錄取戴生，後來，他又通過了鄉試。戴生回家以後，在東邊修建墳墓，遷移龍飛相公的屍骨，豐厚的安葬他。每年春秋兩季，戴生都來上墳，年年不斷。
異史氏說：我的家鄉有人挖煤，洞被水淹沒了，十幾個人都淹在洞裏。外面的人想把水淘盡尋找屍體，過了兩個多月才把水抽乾，發現十幾個人一個也沒有死掉。原來，水暴漲的時候，他們一起游到地勢高的地方。沒有被淹著。人們用繩子把他們拉上來，這些人吹到風才昏倒，過了一晝夜才漸漸地蘇醒過來。由此可見，人在地下時，就像蛇鳥冬眠一樣，急切之間倒也死不掉。但是，沒有聽過過了幾年都不死的。如果不是心地善良的人，經歷了三年的地獄，怎麼可能還有活人呢？