安禄山虽然起兵造反后一年多就死了,但大唐朝廷并没有抓住这个机会彻底歼灭叛军,平定叛乱。安禄山死后先后三个叛军首领安庆绪、史思明、史朝义期间,叛军主力尚存,虽然凝聚力越来越差,但一直到安史之乱结束也没有遭到毁灭性打击。事实上安史之乱最后被平顶了也只是个半吊子工程,是依靠着认可叛军剩余势力实际割据地方而结束的。叛军剩余势力所形成的河北三镇,在往后一百多年一直是大唐朝廷最头疼的问题。
天宝十四(755年)年十一月初九,范阳平卢河东三镇节度使安禄山发动叛乱,起兵造反。跟随安禄山起兵的边军编制兵力有范阳镇(兵力91400人)、平卢镇(兵力37500人)、河东镇大同军(9100人)等部,多达138000人,是全部大唐边军的三分之一左右。安禄山还驱使了同罗、契丹、奚等胡人部族共同叛乱。安禄山叛乱时的实力,在中国历史上的体制内造反中,堪称空前绝后了。
安禄山虽然兼任河东节度使,但大部分河东镇兵力没有跟随安禄山造反。安禄山起兵前派人劫持杀害了在太原的北京副留守杨光翙,让河东镇暂时陷入混乱。安禄山横扫河南河北时,各路边军都没来得及回援,内地没啥有战斗力军队,安禄山很快一路占领洛阳、直逼潼关。边军陆续回援,战线在潼关一带稳定下来。
天宝十五年(756年)六月,以河西军陇右军边军为主力的哥舒翰部20万人出关作战,遭遇惨败,几乎全军覆没。唐军最大的一只重兵集团河西陇右军基本覆灭。
潼关惨败后,叛军进入关中,唐玄宗逃往四川。唐玄宗逃亡途中,发生了马嵬坡之变,杨国忠杨贵妃被杀。马嵬坡之变后,太子李亨前往朔方军大本营灵武,唐玄宗继续前往四川。李亨到达灵武后自行继位,成为皇帝,史称唐肃宗。
安禄山晚年是个大胖子,身体其实很差,应该有严重糖尿病之类症状。安禄山起兵后,很快就病重不能正常理事,喜怒无常,宛如疯子。至德二年(757)正月,安禄山儿子安庆绪、谋士严庄等人合谋杀掉了安禄山,安庆绪成为新的首领。安禄山起兵造反开始到被杀,不到13个月,事后看造反对他自己其实毫无意义。
安庆绪没有安禄山的威望,叛军内部开始四分五裂。
至德二年(757)九月和十月,发动反攻的唐军先后收复长安和洛阳,安庆绪逃往邺城。
乾元二年(759)三月,唐军九家节度使在围困邺城的安庆绪数月后久攻不下,原本已经降唐的史思明重新背叛唐朝,起兵从范阳南下救援邺城。唐军与史思明交战中惨败,诸军皆溃,这是哥舒翰惨败后唐军又一次战略决战失败。
史思明进入邺城后杀安庆绪,成为新的叛军首领。叛军再度占领东都洛阳,唐朝形势又重新回到安禄山起兵初期危在旦夕的时代。唐军此时的主要军事将领李光弼(郭子仪邺城惨败后失去兵权在长安为官)还算得力,局面还能维持。
上元二年(761年)二月,李光弼在洛阳附近的邙山与史思明大战,因为唐军内部李光弼与仆固怀恩等人的矛盾,唐军大败。史思明乘胜直逼潼关,看起来很有机会再次占领关中。
上元二年(761年)三月,史思明的儿子史朝义杀史思明成为新的叛军首领,叛军内讧自然不再威胁关中。史朝义的号召力更差,叛军内部实质已经四分五裂。
广德元年(763年),叛军首领史朝义被唐军斩杀,安史之乱表面上平定。但安史叛军残余势力并没有真正被剿灭,唐军也无力彻底消灭叛军。叛军余部向唐军投降,但实际继续割据一方,形成四个河北藩镇。其中的三个藩镇被称为河北三镇,一直是唐朝后期的心腹大患。