公元759年,史思明率大军攻打河阳(今河南孟州),却被唐将李光弼击退,史称“河阳之战”。
那时,史思明已在邺城(今河北邯郸)杀了安禄山的儿子安庆绪,随后回到范阳根据地(今北京、河北一带)称帝。他接下来的目标,是夺回被唐军收复的两京——长安和洛阳。
史思明之所以选择攻打河阳,是因为河阳正是连接黄河南北的重要通道。他打算先拿下河阳,再顺势攻取洛阳。此外,驻守河阳的李光弼曾故意挑衅史思明,在城郊放出五百匹母马。这些母马不停对着黄河南岸嘶鸣,竟把燕军的战马都引到了河阳,燕军因此损失了近千匹战马。史思明大怒,决定向李光弼宣战。

河阳共有三座城:黄河以北是河阳北城,黄河以南是河阳南城,还有一座建在黄河沙洲上的中潬城。史思明想直接攻取最核心的中潬城,于是派出战船,向中潬城袭去。李光弼命人在中潬城的浮桥上绑上长竿与铁叉。史思明的战船见状,不敢靠近,只得无功而返。
史思明大怒,决定派兵驻守河清郡(今河南焦作),切断河阳的粮道,想把李光弼引出河阳。李光弼果然率兵到了野水渡(今河南孟津),与燕军遥遥相望。史思明以为李光弼中计,便派部属李日越带领五百名士兵,趁夜袭击野水渡。不料,李日越赶到野水渡时,却发现李光弼的部属雍希颢率领唐军,鼓掌欢迎他。
原来,李光弼早已识破史思明的计谋,驻兵野水渡之后,他便留下雍希颢等千余人,自己独自回城。李日越见行迹败露,自己的兵力又远不及对方,只好向雍希颢投降。
史思明得知计划再次失败,极不甘心,决定两面夹击河阳。他亲自率军兵临河阳南城,命部将周挚攻取河阳北城与中潬城,想一举歼灭李光弼的军队。另一边,李光弼将河阳南城交给了郑州刺史李抱玉,自己则驻守河阳北城与中潬城。
河阳南城这边,李抱玉一开始使诈,假装向燕军投降,拖延燕军攻城的时间,一面命人连夜加固城墙,一面等待援军。等到燕军真正攻入时,河阳守军与李抱玉的郑州军两面夹击,成功守住了河阳南城。
中潬城这边,李光弼命人沿城搭建栏杆,挖掘壕沟,派部属荔非元礼抵抗燕军。燕军抵达后,见唐军没有动静,颇为轻敌,一面拆除栏杆,一面填平壕沟。等燕军越来越松懈时,荔非元礼趁机出兵,打得燕军措手不及。燕军将领周挚见形势不妙,连忙改变策略,率兵攻打河阳北城。李光弼于是率领众唐将进入北城。
河阳北城之战,是河阳之战的最后一役。李光弼抱着必死的决心,向众将士喊话:“等会儿进攻,我会站在城墙上挥舞战旗。你们若见我缓缓挥动战旗,就自行择利行事;若我使劲挥动战旗,你们就要不顾一切地与敌军死战。这过程中,若你们放弃作战,我就从后面将你们斩杀;若你们战死,我也必当自刎,绝不会只让你们赴死。”

将士们听令后,便与燕军开战。期间,部将郝廷玉一度逃跑。李光弼正要从后方砍杀他,他急忙告诉李光弼,战马中箭,自己只是回来换马,并非逃跑。李光弼便让他换马,继续出战。另一部将仆固怀恩见战争陷入胶着,忍不住后退,可一见到李光弼凌厉的目光,便不敢再回头,继续奋勇杀敌。
后来,李光弼开始猛力挥舞战旗,众唐将冲锋陷阵。燕军被唐军的气势震慑住,突然不知所措,转眼间就被唐军击溃。无数燕军战死,将领周挚也落荒而逃。

随后,李光弼将俘虏押到河阳南城。史思明见状,知道周挚军已被全数歼灭,自己胜算不大,只好下令撤兵。李光弼就此守住了河阳。
河阳之战是史思明称帝后的首场战役,也是唐军与燕军之间的首场胜战。此前,唐军在邺城被史思明击败,战况一度转为劣势。河阳之战后,史思明攻掠两京的野心被粉碎,两军对峙的局势发生巨大变化,再次扭转,走向对唐军有利的局面。这场战役,堪称安史之乱的关键转折点。中国历史