周生、成生是文登县的同窗好友,成生家贫,靠周生接济,两家亲如一家。周生原配亡故后再娶王氏,成生因王氏年轻未拜见。一日王氏弟弟来访,周生招待时成生到,起初告辞后被追回。
黄家仆人践踏周生家农田并将其仆人送官鞭打,周生欲理论,成生劝阻无果。周生告状,知县撕碎状纸,周生顶撞后被入狱。成生得知后心急如焚,知县与黄家买通海盗诬陷周生,周生被革功名、遭拷打。成生狱中探望,自荐进京申冤。
成生藏于树林向皇帝喊冤,皇帝将状纸交山东巡抚审理。此时周生已屈打成招被判死罪,巡抚重审。黄家贿赂狱卒不给周生吃喝,成生再喊冤使周生案重审,周生已饿至不能动弹。巡抚严惩狱卒,黄家疏通后脱罪,知县被判流放,周生获释。
成生邀周生隐居,周生因溺爱妻子拒绝,成生离去。周生派人寻找无果,常抚恤其儿子。八九年过去,成生身着道袍归来,周生劝他还俗,成生笑而不语,称人世抛弃自己。当晚周生梦到与成生互换身体,醒来成真,明白成生用幻术劝他隐居。
周生回家不被弟弟认出,遂去崂山寻成生。在崂山,道士和同乡生员误认他为成生。周生追赶道士无果,让仆人回去,自己随道童历经艰辛到达上清宫。这里气候奇异,禽鸟驯顺。成生拉周生坐蒲团,二更后周生恍惚间换回身体。
天亮周生执意回家,成生挽留三天后同意。周生睡梦中随成生上路,到家见妻子与仆人私通,找成生帮忙。成生劈开房门,砍断仆人手臂,周生拷问妻子得知其入狱时就已背叛,便借剑杀妻。周生醒来以为是梦,成生拿出带血宝剑,周生虽怀疑幻术但心中有嫌隙。
周生和成生走到村口,成生称之前在此持剑等他。周生回家见家中萧条,弟弟告知妻子被强盗杀害、肠子被挖出,周生明白之前非梦,告知弟弟实情并让其不再追究。周生看到儿子后,决定离世与成生同去。
周生弟弟不善持家,家境贫寒。一日书斋现周生笔迹信件,内有两指长指甲,指甲触物变金,周家暴富。周生弟弟送千两金子给成生儿子,两家会点金术的传闻传开。