曹軍兵臨濮陽城下,呂布并無防備,部下諸將皆在外地。聞說被曹操復奪兗州,沖沖大怒,于是不聽陳宮力勸,獨自引兵出陣,與曹軍對壘。兩軍遇于平野,呂布橫戟陣前,大罵曹操。曹操再用誘軍計,令許褚、典韋、夏侯惇、夏侯淵、李典、樂進六員大將圍攻呂布,自己則親領中軍攻城,打破濮陽城門,一擁而入。呂布本來不敵六將,又聞濮陽城池已失,只得殺出重圍,引領敗軍逃奔定陶而去。陳宮當時在濮陽城中,聞曹軍攻入,便急開東門,保護呂布老小出城。曹操得了濮陽,恐呂布養成氣勢,于是并不歇馬,乃令劉曄等人守城,自己引軍連夜趕至定陶,扎下營寨。當時呂布與張邈、張超盡在城中,防守嚴固,曹操遂連日不戰,復引軍退出四十里下寨,再以疑軍之計誘使呂布出城,大破其軍于曠野。呂布大敗,見進不得城,只得落荒而逃。張邈見呂布逃亡,知道曹操難敵,于是親引部從千人到袁術處求救,留張超帶家眷部屬,駐守雍丘。曹操引軍包圍張超于雍丘,力攻數月城破,殺張超及張氏三族。張邈未到壽春,就被隨從士卒殺害,將其首級獻于曹操,張氏兄弟至此遂滅。
卻說呂布連丟兗州、濮陽及定陶三城,一路向東敗走,收集敗殘軍馬于海濱,卻逢張遼、臧霸等諸將沿海打糧皆回。原來張遼當呂布奪兗州之時,便率并州余部聞訊來投,已與呂布合兵。諸將復聚,陳宮亦率呂布家小尋找而來,卻是呂布在并州時的妻女,貂蟬不在其內。呂布乃會集眾將,欲再與曹操決戰,陳宮再次勸道:“今曹兵勢大,未可與爭。不如先尋安身之地,那時再來報仇未遲。某聞劉玄德新領徐州,他是個長者,為人向來仁義,必納我等,可往投之。”呂布聽從其言,于是竟投徐州,先使臧霸進城拜見劉備,說明前來投靠之意。劉玄德聽說呂布來投,念其平滅董卓有功于漢室社稷,又慕其英勇無敵,遂領關、張二弟及部眾出城三十里迎接。呂布甚為感念劉備厚德,于是并馬入城,到州衙廳上講禮,劉備命設盛宴接風。言談之中,呂布自矜誅滅董卓之功,口稱劉備為賢弟,關張二人皆有怒色,玄德口雖唯唯,也自心中不喜。酒至半酣,呂布忽又想起當日在虎牢關與其三兄弟大戰之事,便委曲套問關張二人武功家數,關羽便欲實言相告,張飛卻攔住二哥話頭,對呂布冷笑道:“我兄弟武藝卻是天生便會,從來不曾拜過師父。你這廝敢自是上次輸得不服么?今日難得相會,倒不如趁著酒興,你我再比三百合如何?”呂布無言可答,只可借故更衣避之。臧霸卻知關羽、張飛根腳,便于更衣之時向二人表明身份,深自接納。陳宮因見徐州錢糧頗廣,人口富庶,卻早存下勸呂布雀巢鳩占的心思,滿懷鬼胎。當日宴罷,劉備遂請呂布引本部軍投小沛安身歇馬,與徐州呈犄角之勢,共防曹操。呂布再三致謝而去,自此屯兵小沛。
卻說曹操平了山東諸州,表奏朝廷,獻帝由此加封曹操為建德將軍,費亭侯,并依當初賈詡所定之計,密詔曹操帶兵進京勤王。其時李傕自為大司馬,郭汜自為大將軍,橫行無忌,朝廷無人敢言。太尉楊彪、大司農朱雋暗奏獻帝,以離間之計令李傕、郭汜相互猜忌,卻不料弄巧成拙,造成李、郭兵鋒相見,大亂長安。李傕趁勢劫了帝后車駕,囚禁于郿塢,使其侄李暹監之,斷絕內使,飲食不繼,侍臣皆有饑色。楊彪與朱雋會合朝廷官僚六十余人,到郭汜營中勸和,郭汜竟將眾官盡行監禁在營,只放了楊彪、朱雋。朱雋歸家,積憂成病而死。自此之后,李傕、郭汜每日廝殺,兩敗俱傷。混戰兩月有余,董卓女婿牛輔統領大軍自陜西來到,聲明與二人解和,李傕、郭汜只得應諾,各自放了天子及百官。牛輔趁機上表,請天子駕幸弘農。獻帝大喜道:“朕思東都久矣,今乘此得還,乃萬幸也!”詔封牛輔為驃騎大將軍,使其率西涼兵留守長安,令李傕收拾車駕東行,遣舊有御林軍數百持戟護送。
由此漢獻帝依著賈詡遺策,又得牛輔之助,終得脫身離了長安,引一班文武群臣前往洛陽。未料鑾輿剛過新豐,未至霸陵,郭汜竟再次與李傕聯手,忽然造反,欲劫天子車駕西返。幸有車騎將軍楊奉、韓暹提前探知其謀,乃與國舅董承商議,未待李、郭二人發動,即拼命保護車駕東奔,用計甩脫李、郭追兵,于陜北東渡黃河,至于大陽。但于此次變亂之中,滿朝文武百官大都于亂軍中離散,更有死于逃難途中者甚眾,漢末朝中精英才俊至此為之一空。渡河未久,幸有太尉楊彪、太仆韓融一路尋至,與獻帝劉協君臣抱頭痛哭。楊彪請獻帝暫居安邑縣,韓融親筆修書,遣使到河西大營曲詞勸說李傕、郭汜罷兵,二賊這才稍從其言,止兵不追。董承、楊奉商議,差人修葺洛陽宮院,欲奉車駕還于東都。楊奉令大將徐晃保護車駕過了箕關,并州太守張楊具粟帛迎駕于軹道,獻帝封張楊為大司馬,令其屯兵野王。
獻帝歷經千難萬險,終于車駕重入洛陽,還于舊都。放眼望去,只見宮室燒盡,街市荒蕪,滿目皆是蒿草,不由淚流如泉,悲傷不已。眾官一起慰勸天子,獻帝收淚忍悲,即命楊奉且蓋小宮居住,下詔改興平年號為建安元年。所謂屋漏偏逢連陰雨,是歲又遇天下大荒,顆粒無收。洛陽居民僅有數百家,城中無可為食,文武百官及朝中僚屬只得盡出城去,剝樹皮、掘草根為食,回城以此奉獻天子、皇后。自尚書郎以下皆出城樵采挖菜,因腹中饑餓口中干渴,多有死于頹墻壞壁之間者,暴尸荒野。當時漢末氣運之衰,無甚于此。
卻說曹操在山東接到朝廷密旨,又聞知車駕已還洛陽,遂聚謀士商議行止。眾人尚未開口,已有荀彧率先進策道:“昔晉文公納周襄王,而諸侯服從;漢高祖為義帝發喪,而天下歸心。今天子蒙塵,將軍誠應因此時首倡義兵,奉天子以從眾望,并伐不臣,此乃不世之略也。明公若不早圖,誠恐他人將先我而為之。”曹操聽了荀彧之策,不由大喜,立刻收拾起兵,前去洛陽迎請獻帝車駕。于是先差夏侯惇為先鋒,引許褚、典韋等上將十員,精兵五萬,先到洛陽保駕;又命曹洪、李典、樂進率步兵兼道而行,以防李傕、郭汜領兵犯闕。
夏侯惇與曹洪奉命,引軍日夜兼程西進,非只一日來至京師。二將前腳剛到洛陽見駕,果然李傕、郭汜后腳領兵殺來,因見有大軍守城,不由失驚。獻帝本來時刻憂懼二賊引兵來犯,今得到曹操派兵前來護駕,不勝之喜,即令曹洪在城中保護宮闈,使夏侯惇出城迎敵。夏侯惇奉了天子旨意,于是昂然出城,將馬步軍分為兩翼,馬軍先出,步軍后隨,盡力攻擊。李傕、郭汜一戰大敗,被斬首萬余,退兵三十里下寨,互相埋怨。次日,曹操引大隊人馬到來,入城參見獻帝、拜于殿階之下。獻帝賜其平身,宣諭慰勞一番,封曹操領司隸校尉、假節鉞、錄尚書事,并授全權管領天下兵馬,令其除滅李、郭二賊。曹操此時由一郡之守升為當朝尚書,可謂連升數級一步登天,自然格外賣力,當時奉了天子詔命,即親引大軍出城,與李傕、郭汜決戰于洛陽城外。列陣已畢,曹操先令許褚、曹仁、典韋三員猛將各領一百鐵騎,于李傕陣中沖突三遭。西涼軍雖眾,當不得三將無敵,一時陣角大亂。曹操見時機已到,隨令夏侯惇領兵左出,曹仁領兵右出,曹操自領中軍沖陣。鼓響三通,眾軍齊進,勢不可當。賊兵抵敵不住,大敗而走。曹操親自押陣率眾連夜追殺,剿戮極多,降者不計其數。
李傕、郭汜不敵青州兵勢猛,軍無戰心,只顧望西逃命,因無處屯扎,終往山中落草去了。楊奉、韓暹見曹操成了大功,恐怕以后難以相容,便以追殺李傕、郭汜為名,引本部軍離開洛陽,屯于大梁。曹操回兵,采納濟陰定陶人侍郎董昭之議,上奏獻帝:“東都荒廢已久,不可修葺,更兼轉運糧食艱辛。許都地近魯陽,城郭宮室完整,錢糧民物足可備用。臣請駕幸許都,惟陛下從之。”獻帝聞說言之有理,遂欣然從之,群臣亦無異議。君臣計議已定,遂擇日起駕。臨行之前,獻帝詔命曹操整頓人馬待發,自己率楊彪、韓融等大臣拜謁皇陵,祭辭列祖。祭陵已畢,回城途中經過少帝劉辯之墓,傳令歇駕,上山憑吊這個只當了四個月皇帝的兄長。當下眾人穿過松林上得山坡,眼前便是少帝劉辯陵墓,獻帝便令止住禁軍及百官,只引十數個侍從上前謁陵。卻見墓門半開半掩,并未封閉,不由大吃一驚。
獻帝心知有異,遂命護衛進去察看。不一時侍衛出來回報,說只見墓中空空如也,莫說殯葬禮器,竟連少帝及唐妃尸首也都不見。獻帝沉吟良久,密囑不得泄露此事,一面令人將墓門掩埋封鎖,休留半點痕跡。眾軍正在掩蔽墓門之際,忽從松林之中走出一個中年道士,身穿灰色道袍,手執拂塵,向獻帝當面揖首,說道:“陛下何來此處?貧道拜揖。”一眾禁軍大驚失色,暗思眾目睽睽之下,竟不知這道人先前藏身何處,如此神鬼莫測地現身帝駕身前,豈非鬼神之屬?于是吶一聲喊,便要上前拿下。太尉楊彪站在遠處,早已認出來者,正是少帝劉辯師父史子眇道長。遂急忙上前止住眾軍,向獻帝奏道:“陛下勿驚。此乃已故弘農王之師,玄都觀觀主史子眇道長。”又回首對史子眇說道:“仙長別來無恙,卻又因何至此?”史子眇詭異一笑,跟楊彪、韓融分別見禮,緩緩說道:“墓中之事既然被陛下和二位大人看到,也是天命如此,因緣際會,合該臥龍出世。事關重大,可否容至林中一敘?”二人拿捏不定,都望著獻帝。劉協急欲知道皇兄劉辯下落,倒也未加防范,遂跟著史子眇走進松林。楊彪回身令禁軍封掩墓門,自與韓融入林保駕,在獻帝身側左右衛護。
四人到了林中,獻帝劉協立定身軀,不再前行。史子眇這才回身向獻帝拜倒,重行君臣大禮,口稱冒犯,請求恕罪。獻帝忙令平身,微笑說道:“早聞我皇兄是由道長撫養長大,即是師父又是養父,以后除非廟堂相見,不必再行如此大禮。”史子眇謝恩,當下也不隱瞞,將少帝與唐妃當年詐死,已暗中潛出洛陽,如今流落民間之事說了,只是未露其落足之所。獻帝聽了,立刻大喜道:“既是兄長未死,那就請道長請回宮來,朕愿將帝位讓還于他。”劉協做了這幾年皇帝,一直被董卓、李傕等權臣挾制,沒有一絲一毫的興趣和快活,此番落入曹操之手,也如芒刺在背,這句話說的倒是發自肺腑,沒有半點虛心假意。史子眇說道:“陛下不可。如今天下臣民盡知陛下,不知有弘農王。且弘農王若有復位之意,也不必逃亡江湖,隱居山林。如今漢室衰微,內有權臣攬政,外有群雄并起,實天下大不幸事。貧道此來是為奏知陛下,以后若果為權臣所欺,可知有弘農王與貧道身在江湖,聯絡宗室諸侯及諸子門派于村野,號令天下并除奸臣,以扶漢室。弘農王只求漢室復興,更無他求。”