唐王朝收复两京以后,安庆绪逃到河北,占领六十座城,继续顽抗。唐肃宗决定派大军进剿安庆绪。这一次进军,唐军一共集中了九个节度使带领的六十万兵力。这九路大军归谁统率呢,论地位和威望,应该是郭子仪和李光弼,但是猜忌心很重的唐肃宗,怕郭、李两人权力太大,故意不设主帅,却派了一个完全不懂打仗的宦官鱼朝恩作观军容使(监视出征将帅的军事长官),九个节度使都得听他指挥。
唐军攻打邺城的时候,史思明又举兵反唐,从范阳带兵救援安庆绪。六十万唐军,准备跟版军决战,还没来得及摆开阵势,忽然刮起一阵狂风,吹得沙尘弥漫,天昏地暗。九路大军没有统一指挥,就都像受惊的马群一样逃散了。
唐军打了败仗,鱼朝恩把失败的责任一古脑儿推给郭子仪。唐肃宗听信鱼朝恩的话,把郭子仪朔方节度使的职务撤了,让李光弼接替郭子仪的职务。
这时候,叛军又发生内讧。史思明在邺城杀了安庆绪,自立为大燕皇帝,整顿人马,向洛阳方面进攻。
李光弼到了洛阳,洛阳的官员听到史思明的兵势猛,有点害怕,有人主张退到潼关。李光弼说:“现在双方势均力敌,我们退了,敌人更加猖獗,不如把我军转移到河阳(今河南孟县),进可以攻,退可以守。”
李光弼下令把官员和老百姓全部撤出洛阳,带兵到了河阳,等史思明进洛阳的时候,洛阳已成了一座空城。史思明要人没人,要粮没粮,又怕李光弼偷袭,只好带兵出城,在河阳南面筑好阵地,和李光弼的唐军对峙。
李光弼是个久经沙场的老将。他知道眼前的兵力不如叛军,只好智取,不好力攻。他听说史思明从河北带来一千多匹战马,每天放在河边沙洲洗澡吃草,就命令部下把母马集中起来,又把小马拴在马厩里,等叛军的战马一到沙洲,就把母马放出来和敌人的战马混在一起。过了一会,母马想起小马,嘶叫着奔了回来,敌人的战马也跟着到唐军阵地来了。
史思明一下子丢了上千匹战马,气得要命,立刻命令部下集中几百条战船,从水路进攻。前面用一条火船开路,准备把唐军的浮桥烧掉。
李光弼探听到这个消息,准备好几百枝粗大的长竹竿,用铁甲裹扎竿头。等叛军火船驶来,几百名兵士站在浮桥上,用竹竿顶住火船。火船没法前进,被烧得樯倒舷裂,一下子就沉没了。唐军又在浮桥上发射石头炮向敌人的战船攻击,把船上的敌兵打得头破血流。有的连人带船都沉入水底;有的挣扎着爬上岸,没命地逃跑了。
史思明几次三番派部将进矿河阳,都被李光弼用计打退。
最后,史思明发了狠心,集中了强大兵力,派叛将周挚进攻河阳的北城,自己领了一支精兵攻打南城。
早上,李光弼带领部将一起登上北城,观察敌军军情,只见敌军黑压压的一大片,正一队一队向北城逼近。唐军将领嘴上不说,心里先慌了。李光弼看出大伙儿的心情,镇静地说:“别怕,叛军虽然多,但是队伍不整齐,看得出他们有点骄傲。你们放心,不到中午,保险能击败他们!”
接着,李光弼就命令将士分头出击。将士们虽然打得勇猛,但是敌人退了一阵,又来了后续部队。太阳已经到了头顶上,双方还不分胜败。