睢陽之戰
至德二年正月(公元757年),史思明、蔡希德等合兵十萬進攻太原,想由北道進犯靈武,被李光弼擊敗。安慶緒封史思明為媯川郡王,令其防衛范陽;又以尹子奇為河南節度使,率兵十三萬掃蕩河南。河南各地紛紛陷落,惟有軍事重鎮睢陽還在唐軍手中(今河南商丘)。
當時,朝廷僅剩下江淮流域的賦稅支撐,睢陽位於大運河的汴河河段中部,如果失守,漕運中斷,後果不堪設想。河南節度副使張巡見形勢危急,放棄寧陵,率兵三千進駐睢陽,與睢陽太守許遠合兵共六千八百餘人。二人率領將士,晝夜苦戰,有時一天之內能打退叛軍進攻二十多次。經過連續十六晝夜的戰鬥,殺死叛軍兩萬餘人。叛軍久攻不下,只能長期圍城。
到了當年七月,守軍只剩千餘人,每日才能分到一勺米,城中的雀鼠及鎧甲弓箭上的皮子都找來吃了,很多人因飢餓而死。張巡殺其妾,煮熟命將士分食,許遠也把僕人殺掉。戰後,睢陽數萬百姓只剩四百餘人,大部分都被守軍吃掉。張巡曾派人到附近的臨淮、彭城求救,但友軍都持觀望態度,不肯救援。
睢陽堅守至十月,終因守軍病餓力竭,被叛軍攻破,張巡及其部將三十六人遇害。在此其間,朝廷不斷得到江淮財賦的接濟。九月,唐肅宗聯絡回紇出兵平叛,聯軍十五萬收復長安。睢陽陷落後十天,聯軍又在陝州擊敗安慶緒主力,趁勢收復洛陽,安慶緒逃至鄴城,叛軍再也無力南下。
鄴城之戰
收復河南、河東部分郡縣後,唐肅宗忙於迎太上皇還都,未及時追擊。安慶緒得以重整旗鼓,聚兵六萬。他忌憚史思明兵勢愈盛,遣使向其調兵。史思明囚禁使者,率部降唐。半年後復叛。
乾元元年(公元758年)九月,唐肅宗命郭子儀、李光弼等九位節度使率部圍攻安慶緒,卻不設元帥。安慶緒不敵,以帝位相讓史思明,請求援助。唐軍包圍鄴城後久攻不下,各部無統一指揮,軍卒疲睏,士氣低迷。史思明見狀果斷出兵,距鄴城五十里紮營,日夜襲擾,焚奪糧餉。乾元二年三月六日,雙方決戰。史思明指揮軍隊奮力衝殺,李光弼、王思禮、許叔冀、魯炅領兵迎戰,雙方死傷相當。後方的郭子儀尚未佈陣,忽然間狂發大起,飛沙走石,咫尺之間,人馬莫辨。叛軍向北潰退,唐軍向南潰散,丟棄的甲仗輜重堆積於路。
史思明得知官軍遠退後,設計將安慶緒騙入營中縊死,入城兼併其軍,留長子史朝義守鄴城。四月,史思明自稱大燕應天皇帝,建都范陽。
河陽之戰
乾元二年八月,史思明兵分四路入寇河南。李光弼下令將洛陽官民遷入潼關,率兩萬人退保河陽三城。九月二十七日,史思明進入洛陽,隨後進軍河陽。史思明軍中多良馬,每日在黃河南岸刷洗,展示軍威。李光弼挑選軍中母馬,一齊趕到北岸嘶鳴,引得對岸一千餘匹戰馬紛紛渡河來追,盡為唐軍所得。史思明大怒,用火船當先,戰船隨後,想要燒燬三城間的浮橋。李光弼早有防備,用頭裝鐵叉的長杆擋住火船,又於浮橋上發射炮石,叛軍戰船多被擊毀。
史思明決定全力進攻河陽三城。李光弼命李抱玉堅守南城,親守河陽中城,擊退叛將周摯的進攻。周摯轉攻北城後,李光弼也率兵趕到。到了中午,還沒有決出勝負,李光弼便派愛將郝廷玉、論惟貞分別攻擊西北、東南兩處叛軍,並下令:“你們都看著我的旗子作戰,如果我的旗子揮動緩慢,就任憑你們自主出戰,如果我急速往地上揮動旗子三下,你們就全軍齊發,冒死前進,稍有退者斬!”郝廷玉戰馬受傷而退,李光弼命左右取郝廷玉首級,郝廷玉連忙說:“戰馬中箭,並非後退。”李光弼命他換馬再戰。僕固懷恩與其子僕固瑒稍有退卻,李光弼又命人去取他們的首級。僕固懷恩父子看見使者提刀而來,重新上前決戰。李光弼不斷揮舞旗子,諸將冒死進攻,最終大敗叛軍。此後唐軍又多次擊敗叛軍,史思明處境愈加窘迫。
亂事告終
上元二年(公元761年)三月,史思明為其子史朝義所殺,內部離心,屢為唐軍所敗。寶應元年(762年)十月,唐代宗繼位,唐將僕固懷恩統兵攻佔洛陽,史朝義率輕騎數百東逃。唐軍隨後連連取勝,史朝義無路可走,自縊而死,餘眾投降,歷時七年又兩個月的安史之亂結束。
安史之亂後,中央政權遭到極大削弱,已無力控制地方勢力。安史餘黨佔據魏博、成德、幽州等地,逐漸把持地方軍事、政治、經濟大權。此後其他地區,如淄青、宣武、淮西等皆被軍閥控制,逐漸形成了晚唐藩鎮割據的局面。