官軍收複洛陽後,叛軍退回河北,其有生力量並未被消滅。安慶緒在相州(今河南安陽)強拉壯丁,重整人馬,又拚湊起數萬之眾,聲勢再振。
乾元元年(758)9月,肅宗命九節度使兵圍相州,討伐安慶緒。這九節度使是:朔方郭子儀、河東李光弼、關內王思禮、鎮西李嗣業、淮西魯炅、興平李奐、河南崔光遠、滑濮許叔冀、鄭蔡季廣琛。按職銜論,九節度使地位相同,職權相等,互不統屬。他們所統兵馬合起來有20萬多。如此巨大的兵力,必須有統一的前敵指揮,以便協同作戰。但肅宗生性猜疑,擔心將帥權力太大會生變故,而且郭子儀與李光弼都是戰功卓著的元勳,相互難以聽任管轄,便不設元帥,隻以魚朝恩為觀軍容宣慰處置使,總監諸軍。設觀軍容使始於此役,它表明宦官監軍的權力更擴大了。
10月,郭子儀帶朔方軍渡過黃河後,在獲嘉(今河南獲嘉)打敗叛軍守將安太清。安太清退守衛州(今河南汲縣),郭子儀緊逼不放,圍攻衛州。與此同時,魯炅、季廣琛、崔光遠、李嗣業等將也率軍與郭子儀會合。
衛州告急,安慶緒出動7萬大軍前來增援,被郭子儀擊敗,並俘殺安慶緒之弟安慶和,一舉攻克衛州。安慶緒逃回相州,郭子儀會同各路將領,尾追至城下。許叔冀、李光弼、董秦、薛崇訓等將也相繼趕赴相州,合圍會攻安慶緒。
安慶緒收集隊伍,在相州城西的愁思岡與官軍再戰,又遭慘敗,損兵折將達3萬餘人,隻得退入城中死守,並派人突圍到範陽向史思明求救。為了能使史思明發兵,安慶緒許諾解圍之後,將大燕皇帝之位讓出。史思明心中暗喜,於是出動範陽兵馬13萬,分三路南下援救安慶緒。
但是,狡猾的史思明看到官軍勢眾,便采取徐進觀望策略,他先派李歸仁帶萬名步騎兵進至滏陽(今河北磁縣),與安慶緒遙相呼應。是年11月,河南節度使崔光遠攻克叛軍占據的魏州(今河北大名)。史思明乘官軍陣腳未穩,急攻魏州,崔光遠接戰失利,魏州複失。
再說相州城處於西靠太行山,南臨黃河的三角地帶,加上安慶緒困守相州,史思明的大軍又從三個方向對郭子儀等將領構成半月形包圍態勢,整個戰局對官軍極為不利。
河東節度使李光弼對史思明的戰略意圖完全明白,他獻計道:“史思明占領魏州後按兵不動,是想等到我軍懈惰之後,再以精銳發起攻擊。我軍應及早采取主動策略。我願率所部河東兵與郭將軍朔方兵同逼魏州,史思明鑒於兩年前的嘉山之敗,一定不會輕易出動。相州城下我各路大軍加強攻勢,一旦打破相州,除掉安慶緒,史思明必定引兵北還範陽。那時,我軍乘勝追擊,定能大獲成功。”
但是,李光弼的這個作戰計劃,卻被對用兵打仗一竅不通的監軍使魚朝恩否定了。官軍策略失誤,而戰機得失瞬息變化,隨後的戰局便急轉直下。
乾元二年(759)2月,史思明在魏州城北築壇祭告天地,自稱大燕聖王。相州城下,官軍自冬至春,久攻不克。鎮西節度使李嗣業焦躁忿然,身先士卒率軍攻城,不幸中箭陣亡。郭子儀在城外築壘掘壕,引漳河水灌城,相州城中井泉溢水,糧草告盡,一隻老鼠竟賣價數千文錢之多。
攻克相州,看來已在旦夕之間。但安慶緒困獸猶鬥,死守待援。圍城的官軍,在曠日持久的攻堅之下,糧草亦告急迫。如果此時諸將合力猛攻,必能獲捷。但是由於缺乏統一指揮,各軍進退互不相屬,致使無謂消耗過多,士卒疲憊,上下離心。
2月底,史思明指揮叛軍出魏州南下,進逼相州。3月初,官軍以60萬人的優勢兵力與叛軍決戰於滏水(安陽河)之北。開戰之後,雙方奮力拚殺,傷損相當。郭子儀率軍繼後,正要布陣迎敵之際,狂風驟起,飛沙走石,天昏地暗,咫尺之間人馬不能相辨。兩軍大驚,各自潰退,兵仗裝備丟棄於路,損失極為慘重。
史思明得知唐軍全已撤退後,便收攏兵馬,趕到相州,立即殺死安慶緒。然後,留其子史朝義守城,自己回到範陽,於4月自稱大燕皇帝。
官軍在相州城下功敗垂成,潰散而退。身為監軍使的魚朝恩,非但不思自己的過錯,反而在肅宗麵前對郭子儀等將大加詆毀,將戰敗的罪責推卸得一幹二淨。他這番惡人先告狀的讒言,使得本來就對郭子儀“擁兵太盛”心存戒備的肅宗,疑慮更重。7月,郭子儀被召回京城,解除了兵權。叛亂未平,正是用兵之際,卻輕易免去大將之職,對戰局和軍心影響甚大。由此可見宦官監軍的弊病危害之深。
9月,史思明叛軍大舉南下,進逼洛陽。接替郭子儀的李光弼兵力不足,雖拚死奮戰,仍不能阻擋叛軍攻勢。於是,李光弼下令吏民撤出洛陽,退守河陽(今河南孟縣)。洛陽遂再次為叛軍所得。
唐軍與叛軍在中原地區的戰局,呈對峙相持態勢,一年有餘。上元元年(760)9月,朝臣中有人上奏道:“郭子儀善於用兵,多次為朝廷立功。現在為何讓良將閑處而不用,使得叛軍逞凶於中原呢?”肅宗鑒於形勢,決定起用郭子儀率軍平定河北。但是,詔令剛剛下達,魚朝恩又危言聳聽從中阻撓,最後致使皇帝的成命不能施行。魚朝恩出於一己之私心,嫉妒郭子儀功大位高,極力加以貶損,真可謂濫用皇帝恩寵信任,起了叛軍無法達到的破壞作用。
上元二年(761)2月,史思明進攻河陽李光弼,屢次無功,便派奸細潛入官軍營中散布說:史思明軍中士卒多半是河北人,厭戰思歸,軍心不穩。有人將此消息報告給在陝州的魚朝恩。急於邀功的魚朝恩,急忙上奏給肅宗,請求命令李光弼出兵攻取洛陽。李光弼接到命令,立即上奏陳言道:“叛軍兵鋒正盛,不可貿然輕進。”但肅宗仍堅持進攻的命令,並派宦官催督出兵。李光弼難違君命,隻得與朔方節度使仆固懷恩一同兵出河陽。魚朝恩與神策軍節度使衛伯玉,也一同率軍進攻洛陽。
且說仆固懷恩其人,他是鐵勒族人,作戰勇猛但剛愎自用,他的部下既有蕃人也有漢人,都是剽悍勁卒,恃仗戰功常幹些不法越軌的勾當。郭子儀任朔方節度使時,常倚靠仆固懷恩的部眾,所以對他們比較寬容優遇。而李光弼治軍紀律嚴明,執法如一,仆固懷恩不敢妄行胡為,但心中常懷不滿。他巴結附會魚朝恩,上言東都可取。
2月23日,官軍與叛軍前鋒相遇於洛陽西北的邙山。李光弼命令在險要地形處布陣迎敵,而仆固懷恩卻要在無險可據的平原處列陣。李光弼說服道:“據險列陣,可進可退。若在平原列陣,一旦失利,便會全軍覆沒。史思明也是善於用兵的人,不可輕視。請將軍務必據險布陣!”
仆固懷恩心中不服,轉身去找魚朝恩。與九節度使圍攻相州一樣,魚朝恩對這次進攻洛陽的各路兵馬握有提調之權。由於將領意見相違,官軍列陣的地點,遲疑不定。結果,史思明趁此機會,督軍猛衝,官軍死傷數千人,敗陣潰退,軍需裝備丟了個精光。李光弼與仆固懷恩一直退到黃河北岸的聞喜(今山西聞喜),魚朝恩與衛伯玉奔回陝州,留守河陽的官軍也棄城撤退。叛軍的氣焰又再度猖狂起來。
史思明於邙山得勝後,想借勢進兵西取潼關,再圖長安。他命兒子史朝義進攻陝州。3月,屯守陝州的神策軍與增援的其他官軍,在衛伯玉指揮下,幾次打退史朝義的挑戰。史朝義西進受阻,勞師無功,氣得史思明大罵其無能,並揚言要依軍法處斬。史朝義心中惶恐不安,父子間便重演了安祿山的悲劇。
史家父子的矛盾,有一段緣由。史思明還未顯達時,有一辛姓富戶家的女兒,執意要嫁給他。史思明娶辛氏後,生子朝清,十分溺愛。這史朝清長大之後,酗酒好殺,不得人心。而史朝義性情謹慎,對待部下將士也多有恩情。史思明僭稱皇帝,立辛氏為皇後,但立太子一事卻遲遲不決。按理當立長子史朝義,但史思明欲立辛氏所生,遂使父子關係產生隔閡。等到史朝義進攻陝州連連失利,史思明就想借此口實殺長子而立次子。
史朝義明白自己的處境,便先下手為強,和自己的心腹將領駱悅、蔡文景等密謀後,於半夜闖進史思明軍帳,將其縊殺。緊接著,史朝義帶兵返回洛陽,自稱皇帝,改年號為“顯聖”,又秘密派人到範陽,殺死辛氏與史朝清。範陽一些史思明舊將,心中不服,史朝義大開殺戒,殘酷鎮壓。叛軍內部的這場爭權殘殺,數月不息,實力大為削弱。
再說唐朝廷以邙山之敗,免去了李光弼的天下兵馬副元帥職務。寶應元年(762)4月,太上皇(玄宗)與肅宗相繼駕崩,代宗即位。10月,代宗命雍王(李適,即德宗)為天下兵馬元帥,統率大軍討伐史朝義。代宗想用郭子儀為副元帥,又被宦官程元振和李輔國進讒阻止。最後,以仆固懷恩領諸軍節度行營副元帥,輔佐雍王。部署停當,官軍分三路合攻洛陽,連戰連勝。史朝義帶幾百騎兵逃到黃河北麵,與援兵會合,重整旗鼓再戰,又遭大敗。眼看大勢已去,史朝義隻有繼續北竄逃命。而河北的叛軍將領,紛紛上表請降。在眾叛親離,窮途末路之下,史朝義於廣德元年(763)正月自縊身亡。安史之亂至此才告平定。
叛亂平定之後,唐朝廷對有功將士,封賞官爵財物,大加表彰。魚朝恩在洛陽再度收複後,已加授開府儀同三司,封馮翊郡公。他所監領的神策軍,一度移駐汴州(今河南開封),不久,又回到陝州駐紮。在整個平叛戰爭中,對行軍布陣知之甚少的宦官,受命監軍,節製將帥,臨戰瞎指揮,招致不應有的失敗,皇帝並不加以追究問罪;及至論功行賞,魚朝恩又高過大將,如此行事,真正是姑息養奸,遺患無窮。