至德二载(757年)正月,安禄山为其子安庆绪所杀,安庆绪据洛阳称帝。李光弼率兵不足万人坚守太原,屡败叛军,歼敌10万。郭子仪率兵攻取河东(今山西永济西南)。唐肃宗急于收复两京,不用谋士李泌先取范阳,以断安军归路的策略,四月,以郭子仪为天下兵马副元帅,率兵攻长安。郭子仪在长安城西清渠为安军所败,退保武功(今陕西武功西北)。九月,广平王李俶与郭子仪领兵15万,并借回纥精兵4000人,在长安城南香积寺北与10万安军展开激战,歼其6万余人,乘胜克复长安。十月,又在陕郡之西的新店击败安军l5万,一举收复洛阳。安庆绪率部逃往邺城(今河南安阳)。在此之前,真源县令张巡、睢阳太守许远,率众苦守汴河战略要地雍丘(今河南杞县)和睢阳(今河南商丘县南),与优势叛军前后进行大小400余战,歼其12万余人。最后虽因孤军奋战、粮尽援绝而城陷,但粉碎了安军夺取唐王朝赖以生存的江淮财赋基地的企图。南阳太守鲁炅坚守南阳(今河南邓州)历时一年,南阳失陷后又退保襄阳,始终挡住了叛军南下襄、邓的道路,确保了唐王朝江汉漕运的畅通。
唐肃宗在收复洛阳一年后,于干元元年(758年)九月,才命郭子仪、李光弼等9节度使,统兵20余万,进讨安庆绪,以宦官鱼朝恩为观军容宣慰处置使,监督诸军行动,不设统帅。唐军圈邺城4月之久,史恩明率军13万来援。二年三月,两军在安阳河北大战,时狂风骤起,天昏地暗,唐军惊退溃教。史恩明杀安庆绪,还范阳称大燕皇帝。九月,史思明统兵南下,占领洛阳。十月,与兵马副元帅李光弼大战于河阳(今河南孟县南),连遭挫败,退保洛阳,两军相持年余,上元二年(761年)二月,唐肃宗令李光弼****洛阳,大败。三月,史朝义杀其父史思明,自立为帝。
宝应元年(762年)四月,唐肃宗去世,太子李假(已更名豫)即位,是为代宗。十月,代宗以雍王李适为天下兵马元帅,与仆固怀恩率唐军和回纥兵攻克洛阳,歼叛军6万,俘2万,乘胜收复河阳、汴州(治今河南开封)等地。史朝义逃往河北。河北安史部将见大势已去,纷纷投降唐廷。史朝义在唐军的追击下,于宝应二年正月,窘迫自杀。历时七年又三个月的安史之乱,至此结束,
安史之乱是中唐社会矛盾的产物。由于唐朝社会长期和平,不识战斗,所以叛兵很快攻下洛阳和长安。然而叛军每破一城,都大肆劫掠妇女、财货,男子壮者荷担,老弱则被杀死,渐失民心。安禄山攻陷长安后,日夜纵酒为乐,没有进兵四川,使玄宗在蜀,太子李亨在灵武立足,组织力量反击。唐将颜果卿、张巡、郭子仪、李光弼等力阻叛军,不但消灭了敌军大量有生力量,而且稳住了战局,为唐军战略反攻准备了条件。唐王朝在平定安史叛乱中,由于过早实行战略反攻,而弃潼关不守,又急于收复两京,而不先攻范阳,断其归路,收复两京后,又不乘胜追歼等几次战略决策上的严重失误,致使战争旷日持久。但在李光弼、郭子仪、张巡等将帅的卓越领导下,在广大人民的支持下,最终取得了胜利。但唐王朝虽然取得了战争的胜利,但战乱对北方黄河流域广大地区的经济破坏非常严重;战后,朝廷又被迫授安史部将为节度使,由此形成藩镇割据局面;吐蕃乘边防空虚,侵扰也日益频繁,唐王朝从此由统一集权走向分裂割据,由强盛走向衰落。
唐末农民起义战争
唐大中十三年(859年)十二月浙东人裘甫举起反唐义旗,至中和四年(884年)黄巢义军被镇压,这场反抗唐王朝统治的大规模农民起义战争,先后长达25年之久。
唐宣宗李忱时期,朝政腐败、宦官专权的矛盾日渐突出;战争不断,社会经济发展遭到严重破坏;土地兼并集中,赋税逐年繁重;加上连年自然灾害,农民大量逃亡,被迫奋起反抗,爆发了轰轰烈烈的唐末农民大起义。大中十三年十二月,浙东人裘甫聚众起义,攻占象山(今属浙江)。随后,攻克剡县(今浙江嵊州),大败唐军于三溪(今嵊州西南),义军扩展至3万余人。裘甫自称天下都知兵马使,建元罗平,声震中原。十四年三月,这支义军分兵攻州夺县,先后夺取唐兴、上虞等6城,立足宁海(今浙江宁海)与朝廷抗衡。裘甫义军被前安南都护王式(后调任为浙东观察使)捌杀。但这场不足半年的反唐起义,虽被官军扼杀,但他却揭开了唐末农民起义的序幕。
成通九年(868年)七月,驻守桂州(今广西桂林)防御南诏的徐、泗(今江苏徐州、盱眙西北)籍戍卒800人,因逾期不更换、而相聚兵变,杀都将,拥粮草判官庞勋为主,北还故里。庞勋自称兵马留后,率众攻占彭城(今江苏徐州),分兵进取外围州县,远近农民纷至归附。两战都粱城(今江苏盱眙北淮河南岸),歼灭唐军数万人,义军发展至20万人。成通十年,唐徐州行营都招讨使康承训率沙陀等军7万进攻,起义军屡战不利,各要地相继失守。是年九月,宿州义军守将张玄稔反叛,勾引官兵袭陷徐州。庞勋转战至蕲县(今安徽宿县南)西,失败牺牲。部将吴