提到安禄山叛军的失败,不得不说有几个人起了非常关键的作用。
一、李光弼的地道战虽然由于唐玄宗的失误,让本来已经前后失据的安禄山占领了长安,但北都(太原)留守、户部尚书李光弼仍然控制着太原,这里南下可威胁两京(洛阳,长安),东出可抄叛军河北老巢,让安禄山如芒在背,于是派大将史思明、蔡希德、高秀岩、牛廷介四路大军共计十万人围攻太原。李光弼所部不足万人,但他智谋百出,粉碎了叛军的各种攻城手段。
叛军用云梯登城、冲车撞门、土山蚁附,李光弼早就挖好地道,派勇士隐藏在地道口,一见叛军接近城墙就突出捕杀。又制作抛石机发射巨石,将安军攻城器械打碎。接着把地道挖到叛军营下,挖好陷坑,派数千人出城诈降,待叛军地陷慌乱之际猛攻,消灭叛军上万人。这时,安禄山的儿子安庆绪杀了安禄山,命史思明归守河北,蔡希德继续围攻太原。但李光弼乘机出击,大破蔡部,消灭叛军七万余人。继续威胁着叛军的河北后路。
二、三十六将守睢阳当太原之战进行时,安庆绪为了切断唐军财源饷道,派河南节度使尹子奇率军十三万进攻睢阳。太守许远、县令张巡率领六千八百余官兵死守不退,连续激战十六昼夜,有时一天要打退叛军二十次进攻,最终消灭叛军二万余人迫使其退走。三月,尹子奇卷土重来,又被张巡击败,损兵三千。五月,尹子奇第三次攻城,张巡夜间击鼓骚扰叛军,待天明叛军休息时,率将军南霁云、郎将雷万春等十余名将领各率五十名骑兵,突然出城袭击叛军消灭叛军五千余人。
南霁云射伤尹子奇左眼几乎将其生擒。七月尹子奇第四次围攻睢阳。这时粮食已尽,只能杀城中百姓当食物(第一个被吃掉的是张巡的小妾),守军也只剩一千六百人。张巡率军出城烧毁叛军云梯、钩车等攻城器械,但已无力击退叛军。战至八月,守军只剩八百人,城中百姓也已经吃完了(据称被吃掉的有三万人之多),只吃树皮为生。十月九日,守军饿得连兵器都拿不动,城池终被攻破,许张南雷等三十六名守将全部殉国。三十六将殉国三十六将守卫睢阳长达十个月,战斗四百余次,歼敌十二万人,保障了江淮物资供给线,为唐军反攻争取了时间。睢阳陷落时唐军已经收复长安了。三、郭子仪收复两京早在四月,天下兵马副元帅郭子仪就进攻长安,但是因为缺乏骑兵,叛军九千骁骑从两翼夹击唐军,以致溃败。九月,唐军借来回纥骑兵,集中大军十五万,与叛军十万决战于长安城南。
叛军又欲故技重施,结果被回纥骑兵歼灭,唐军乘势布步骑合攻斩首六万,叛军放弃长安。十月,安庆绪集中十五万叛军依山列阵,唐军进攻不利,郭子仪命回纥骑兵自南山而下,袭击叛军侧背,叛军大溃,安庆绪只带着一千多人逃走,唐军收复洛阳。