文登县周生和成生是少年时代的同学,彼此约订为不计较贫富贵贱的朋友。
成生家里很贫穷,终年都依靠周家接济。周生比成生年龄大,成生将周妻称为嫂子,逢年过节,成生定来周家一同过,所以两家就像一家一样。周生妻子生下男孩后得病身亡,周生又续娶了王氏。王氏太年轻,成生没有请求见她。
有一天,王氏的弟弟来看望姐姐,家里就在卧室设宴款待。这时正遇上成生到来,周生就叫家人请成生到卧室就餐,成生不愿进去,便告辞走了。周生出门将他追回,又把酒席搬到客厅,成生这才入席。刚坐定,就听有人来报告,说周家庄园里的仆人被县官打了重板。原来黄吏部家牧童放牛时踩了周家田里的庄稼,于是两家仆人争吵起来,黄家牧童回去告诉主人,将周家仆人抓送官府,就这样,周家仆人挨了打。周生问明缘由,气得怒火中烧,骂道:“黄家放猪的奴才,岂敢如此蛮横!他的先人还是我爷爷的奴仆呢,一下子得志,就目中无人了。”一时间,周生气愤填膺,从饭桌上站起来,要找姓黄的算帐。成生按住他说:“而今是强盗世界,本来就没有是非曲直,更何况现在的官吏,都是些不拿刀枪的土匪。”周生怎么也听不进去,成生一再劝谏,甚至流下眼泪,这才停止。但是周生闷在心里的一口恶气怎么也咽不下去,所以整整一夜都不能入睡。
第二天,周生对家里人说:“黄家欺负我们周家,与我结仇,这姑且不论;可是县令是朝廷委派的,并非是有钱有势人家的官,纵使现在发生纠纷,也必须传两家同时到庭了解实情,为什么要像狗一样受人唆使而胡乱咬人?我现在也告他黄家的仆人,看他县官如何处分?”家人全都怂恿这样做,于是周生决定到县衙门告状。周生把状纸呈上,不料县官却当着他的面撕烂状纸,随手扔了一地。周生激愤难忍就出言冲撞了县官,县官恼羞成怒,便将他关进监狱。
早晨刚过,成生到周家才得知周生已到县城去打官司,他就急匆匆赶去劝阻,这时周生已被关起来了。成生心里很焦急,脚在地下跺着一时想不出什么好办法。当时县里抓捕到三名海盗,县官与黄家狼狈为奸,密谋串通共同收买海盗,要他们供认周生是同党,于是就根据捏造的罪状先革掉周生的功名,又酷刑拷打。成生到监狱去探视,俩人相对悲叹不已。成生建议进京去告御状,周生苦笑着说:“我如今身陷囹固,犹如笼中之鸟,虽然有个弟弟,但只能为我送送饭罢了。”成生自我承担说:“这事包在我身上,危难中不能救急,还要朋友干什么?”成生从狱中出来,立即就出发了。等周生的弟弟去送路费,成生已动身多时了。
成生几经转折到达京城,但他也并无门路投诉。他听到皇帝要出猎,便预先隐藏在路边的木市中,等到皇帝车驾过来,就伏在路中央大哭喊冤。皇帝批示将状纸由驿站送交山东巡抚审理,并回报审理结果。这时已过十个月多了,周生已诬服定为死罪。巡抚接皇帝御批,大为震惊,便立即提案复审。此时此刻黄吏部闻风丧胆,惊恐万状,为逃避罪责,设法先把周生弄死,企图灭口。于是他买通看守,断绝周生的饮食。周生弟弟来送饭,被狱守严厉禁阻。成生又到巡抚衙门去喊冤,当上边提审犯人时,周生已饿得站不起身来。巡抚大为震怒,立即杖毙看守。黄吏部闻讯后更加惊恐,便行贿数干两银子,请求设法解脱罪刑,才算蒙混过关而奏报朝廷免罪,县官因枉法被革职流放。
周生被无罪释放,经过这次大难,更把成生视为肝胆之交。成生也因此看透尘世,邀周生一起去隐居山林。周生太贪恋娇妻,却反而取笑成生太迂腐。成生口里并不说什么,却意志坚决。他们分手后,成生几天未到周家,周生又派人到成家去问讯,成家人以为成生一直留在周家未回。两处都不见成生踪影,大家开始怀疑他的去向。周生心里很明白他的去处,派人到寺院、大山去寻找遍了。还经常拿出钱财来接济成生的儿子。
过了八九年,成生却突然自己出现了,全然一身道士打扮,头裹黄巾身着氅服,神态庄重,周生非常高兴,紧握着成生的手说:“您去了哪里,叫我到处找寻,找得好苦啊!”成生淡然笑笑说:“我就像孤云野鹤,栖居之地没有固定的场所。只是分手后幸好身体还都健康。”周生命令家人设宴招待成生,畅叙别后详情。他想让成生脱下身上的道服,成生却笑而不答。周生又问成生:“为何弃置妻儿如同敝屣?真是太愚阔了。”成生笑着说:“并不是这样。是人家要抛弃我,我还能抛弃谁呢?”周生又问他究竟在何处居留,成生告诉他在劳山的上清宫。夜里就寝时,两人顶足而睡,周生梦见成生脱了衣服伏在他的胸上,感到压抑喘不上气来。惊讶地问成生为何这样!成生并不回答。他突然惊醒过来,叫着成生却不见应声,他赶快坐起来用目光搜寻成生,成生已杳然不知去向。他镇定了一会儿功夫,才感觉到自己睡在成生的床上。于是很惊慌地自言自语说:“昨天并没有喝醉酒,怎么会颠倒到如此地步?”他喊来家人,家人端灯来照他,发现他变成成生的模样。周生本来多胡须,这时他用手一捋,却不过稀疏几根。他又照着镜子惊讶地说:“成生在这儿,而我自己到哪里去了呢?”他马上醒悟过来,明白这是成生施了幻术招他去隐居。他想进入里屋,弟弟见他不是兄长模样,阻止着不让进去,周生自知无法辩白,当即命令仆人备马去找成生。
几天后,周生来到劳山。由于马走得太快,仆人没有跟上,他停在树下休息,见道士往来频繁,其中有个道士用眼睛看他,他就趁机询问成生。道士笑着说:“听说过名字,好像他在上清官。”说完径直走开。周生目送着他,看见他在一箭之外的地方,又和另一个人说话,没说几句又走了。和道士说话的那人慢慢走近,周生认出他是当年的社学同学。这人见到周生惊愕地说:“几年不见了,大家以为你在名山学道,为何还留在尘世间?”周生将自己易形的事说了,对方惊讶地说:“我还刚见过他,以为他就是你呢。走了没多长时间,也许不会走远。”周生很诧异,说:“怪了!为什么自己看自己的面目反而不认识了呢?”一会儿,仆人已到跟前,又急急追赶了一阵,还是没有踪影,只见眼前一片寥阔境界,他决定不了是进还是退,但明白自己已是无家可归,于是就决定穷追下去。眼前山路险峻,无法再骑马前行,他把马交给仆人让回去,沿着连绵曲折的山路独自前行。走了没多久,就远远看见有一道童独自坐着,他走上前去向道童问路,并说明到山上来的原因,道童告诉他是成道人的弟子,代周生背着衣物和粮食,引路同行。他们日夜兼程,行了很远的路,三天后才到达一个地方。周生看这里并非世上所传说的上清官。时值十月中旬,山花竞放,满山遍野,不像初冬景象。道童进去报告客人来到,成生即刻出来相迎。周生这才从对方身上认出自己的形貌。成生握着他的手进去,设酒宴盛情款待。周生见那些毛色鲜艳的奇禽异鸟离座不远,全不怕生人,叫声像笙箫一般悦耳动听,时不时飞到座上来鸣唱,他感到很奇异。但周生终于贪恋世俗,念家心切,不愿在此久留。地上放着两个蒲团,成生拉着他与自己各坐一个,值二更天以后,他觉得自己的一切顾虑杂念全打消了,恍忽间,他感觉自己好像只是打个盹的功夫就和成生调换了位置。他还有些疑惑,用手捋捋下颏,浓密的胡须和过去一样了。第二天天一亮,他就决意要返回。成生执意挽留他。过了三天,成生便说:“请你稍稍休息一下,尽早送你上路。”他刚闭上眼睛,就听见成生说:“行装已经打点好了。”于是他便起身跟着成生走,这时他觉得不是原来走过的老路。不久,已见家园。
成生坐在路边等候,让他自己回去。周生请他一起去,成生不去,他只好自己孤零零来到家门口。敲门,里边没有应声,他正想着要翻墙过去,立时觉得身轻如叶,便一跃而过。这样一直翻跃了几道墙,才到了卧室外,看里面烛光闪烁,妻子没睡,又听见里面有嘀嘀咕咕的说话声,他舐破窗纸往里一看,却见妻子正和一个仆人同杯饮酒,显得依偎亲热的样子,周生一下子怒火中烧,本想一把将两人同时捉住,又怕自己一人力量达不到,就潜身出去,请求成生相助。成生慷慨答应,俩人直抵卧室门口,周生用石头猛敲房门,里面慌乱起来。周生敲得越急,里面门关得越紧。成生用剑一拨,门哗然打开,周生直奔进去,仆人急忙跳窗逃跑,成生在门外,一剑就削断了奸夫的臂膀。周生抓住妻子拷问,才知道在他坐监狱时,妻子就已和仆人私通了。周生从成生手里要过剑,砍下妻子的头,还把肠子挂在院里的树上。然后俩人一起离开,寻路返回。
道士听从了老翁的劝告,也迁徙到别处。不久,便发生了农民军、清军前后攻进北京城的事件。