灵武即帝位,是为唐肃宗。八月,肃宗将郭子仪和李光弼部从河北召至灵武,并联合回纥
骑兵,准备开展大规模的反攻。
至德二载(757)正月,安禄山被其子安庆绪杀死。九月,郭子仪率唐军和回纥骑兵收复
长安。接着,又收复东都。安庆绪退守邺郡(治所在今河南安阳)。干元元年(758)九
月,唐肃宗调遣朔方郭子仪、淮西鲁炅、兴平李奂、滑濮许叔冀、镇西北庭李嗣业、郑蔡
季广琛、河南崔光远、河
东李光弼、关内泽潞王思礼等九节度使率兵六十万,进讨安庆绪。又以宦官鱼朝恩为观军
容宣慰处置使,协调和指挥战事。十月,唐军进围邺城,安庆绪向留守范阳的叛将史思明
求救。二年(759)三月,史思明率兵十三万赴援,与官军在安阳河北相遇。双方未及布
,大风突起,飞沙走石,天地昼晦,两军将士大惊,官军向南溃逃,叛军向北撤退。不久
,史思明率部来到邺城南,安庆绪出城慰劳,被思明执杀,叛军返回范阳,思明自称大燕
皇帝。
上元元年(760)四月,史思明率军南下,攻占东都。次年二月,史思明被其子史朝义所
杀,朝义即帝位,改元显圣。宝应元年(762)四月,唐肃宗病重弥留。张皇后与越王李
系密谋,企图诛杀专权宦官李辅国,事泄被杀,肃宗惊吓而死。太子李豫即位,是为唐代
宗。同年十月,唐代宗以
雍王李适为天下兵马元帅,朔方节度使仆固怀恩为副元帅,统领诸道唐军和回纥兵,收复
洛阳,史朝义北逃范阳。
唐代宗广德元年(763)正月,史朝义逃至广阳(今河北房山东北)附近,由於众叛亲离
,自缢而死。其部将李宝臣、李怀仙、田承嗣相继投降,先后被任为成德、幽州和魏博三
镇节度使,是为河北三镇。长达八年之久的安史之乱至此平息。