乾元二年(759)九月,史思明的叛军占据了洛阳,李光弼固守河阳,多次打退史思明的猛烈进攻,使叛军不敢西进。在河阳城下遭受惨败之后,史思明百般引诱,想使李光弼渡河来洛阳与其野战决胜,而李光弼洞明形势,不为所动。两军相峙近一年半之久,不肯冒险决战。此时叛军内讧,史朝义杀父自立,军心分裂,实力大受削弱,唐军的处境开始有所好转。由于史思明所统叛军,以胡人骑兵为主力,长于野战,拙于攻城。在多次攻城未果的情况下,史思明于上元二年(761)二月间派间谍潜入陕州和长安,四下传言:“驻在洛阳的叛军将士,都是燕地人,长期在外征战,人人思归故乡,军中上下离心。官军如果趁此时机进攻,必能战而胜之。”鱼朝恩盲目乐观,推波助澜,多次上奏肃宗。而此时的唐肃宗也是急于求胜,于是,唐肃宗迫令李光弼进兵洛阳。李光弼上奏分析形势,认为叛军居于优势。且兵锋尚锐,应等待有利时机,不宜轻举进攻。
然而,此时的鱼朝恩邀功心切,于是他上奏唐肃宗亲自到陕州前线观察,但是到了之后,他根本没有仔细查看敌情,而是依然按照自己的计划来行事。巡查之后,他很快就回到了长安。面见唐肃宗之后,他出于对郭子仪和李光弼等大将功勋卓著而朝野赞誉的嫉妒之心,归朝后妄言上奏说:“李光弼言称叛军盛锐,不可轻进,其实是想借夸大叛军声势来自重其位。”不仅如此,朔方节度副使仆固怀恩,勇猛无敌,但刚愎自用。其部下的蕃、汉士卒,剽悍善战,但也是依仗战功,时常违法乱纪。郭子仪任朔方节帅时,主要靠这些蕃、汉劲兵上阵杀敌,所以遇事多宽容处理。而李光弼治军严明,事无大小,皆依法论处,决不姑息。仆固怀恩对李光弼的威严军令,既感厌恶又心存恐惧。自李光弼处斩张用济之后,仆固怀恩一直耿耿于怀,而且仆固怀恩野心很大,一心想取代李光弼的位置。为了满足自己的权欲达到挤走李光弼的目的,他转而依附鱼朝恩,和鱼朝恩商议后,他也上奏唐肃宗说:“洛阳可取。不能眼看着叛军的势力扩大发展。”这样一来,唐肃宗更加认为乘着李光弼河阳之捷和进取怀州之后的有利形势,再次收复洛阳,将会指日可待。
在这前后的两道上奏之后,唐肃宗坚定了自己的想法。随后,他便相继派了两名中使前往李光弼的营地,催促李光弼出师攻打洛阳。面对这样的情形,李光弼想起了四年前潼关之战时的哥舒翰,不禁仰天长叹。然而,圣旨难违,李光弼只得下令郑陈节度使李抱玉留守河阳,自己与仆固怀恩率领大军,会同驻在陕州的神策军节度使卫伯玉,共受监军使鱼朝恩提调,进攻洛阳。二月二十三日,两军遭遇于洛阳北面的邙山。李光弼下令唐军据险列阵,而仆固怀恩却要在平原处列阵。李光弼指明利害道:“依据险要,可进可退,若在平原,一旦失利便会全军溃败。史思明善于野战,不可轻视。”但仆固怀恩拒不听命,反而去找鱼朝恩决断。结果,就布阵地点,半天决定不了。战场得失,瞬息万变。叛军乘唐军列阵未成,抢先发起猛攻,唐军顿时大乱,死伤数千人,全线溃败,军资器械丢弃于路。李光弼与仆固怀恩渡河北走,退保闻喜(山西闻喜),鱼朝恩和卫伯玉奔还陕州。史思明乘胜渡河进攻河阳,李抱玉也弃城北撤到泽州(山西晋城)。于是,河阳、怀州又陷于叛军之手。肃宗闻报邙山败绩,大为恐慌,急令向陕州增兵,加强防御。邙山败绩后,李光弼心中非常惶恐,他上表请罪,自求贬职。三月,肃宗下诏改授李光弼门下侍中、河中尹、晋绛等州节度观察使。
在叛军方面,史思明乘邙山的胜利,士气高昂的时候,下令其子史朝义为前锋,自北道沿黄河进攻陕州,自率大军自南道沿崤山西进,企图攻破陕州和潼关,再取长安。三月七日,史朝义进至陕州东面的礓子岭,被卫伯玉所部唐军击退。随后几次进攻,也都遭失败。史思明被迫驻兵于永宁(河南洛宁),召来史朝义并其部将骆悦等人,大加责骂,声称要按军法将史朝义处斩。三月十三日,史思明又命史朝义依山修筑三角城以贮军粮,限期一日完工。史朝义如期完工,尚未抹泥,史思明赶来立马监工,挑剔怒骂:“等攻下陕州,再杀掉你这个无用的东西。”史朝义忧愁恐惧,不知所措。史思明生性残忍好杀,部下稍有过错,动辄诛族,人人自危。史朝义在其兄弟中为长,常年跟随史思明统兵征战,处事谦和谨慎,爱惜士卒,深得军心,但却始终不得父宠。史思明厌恶史朝义,其中早有缘由。史思明年轻时贫贱,被乡里轻视,但有一辛姓富豪之女,却偏偏愿嫁史思明为妻。史思明自称皇帝,立辛氏为皇后。辛氏所生子史朝清也因其母得宠,为史思明所溺爱。由于偏宠,史思明常欲杀掉史朝义,立史朝清为太子。而史思明左右侍从,因常受虐待,人人怀恨,遂泄此谋。史朝义闻知,及至陕州连遭失败,史思明认为史朝义临阵胆怯,不足成事,发怒欲斩其治罪,此时他们父子关系已如同水火。史朝义的部将骆悦和蔡文景等人,害怕会牵累自身性命,便劝史朝义说:“我们与您已死到临头!自古以来常有废立,请您召见宿卫的曹将军,一起共商大事吧!”史朝义一时下不了决心。骆悦等人陈明利害道:“您如果不允许这样干,我们今天就去投降唐军,那您的处境就更危险了。”史朝义思之再三,最终流泪答应了。当天夜晚,骆悦与曹将军等人带领三百名士兵,悄然来到史思明所在的驿馆,闯入营帐,活捉了史思明,押至东面的柳泉驿缢杀,然后用毡子包裹尸体,运往洛阳。史朝义杀父之后,在洛阳登基称帝,改元“显圣”。同时密派使者返回范阳,传令散骑常侍等人,杀死史朝清与其母辛氏,又杀不肯听命的将领数十人。结果引起范阳叛军将领之间相互攻杀,数月不息,死亡数千人。史朝义任命李怀仙为范阳尹、燕京留守。史朝义虽然待下有礼,但缺乏经略才能。其部下的节度使大多是安禄山的旧将,地位与史思明相当,耻为史朝义的臣下,史朝义下令相召,几乎无人前来。相互之间仅维持表面上的君臣关系而已,无人肯真心效命卖力。叛军经过这场父子“火并”,人心更趋四分五裂,实力大为削弱。此时的洛阳周围,因战火摧毁,数百里内的州县,皆成丘墟。于是,史朝义放弃向西进兵的战略,将攻略矛头转向东南方面。
上元二年(761)五月,唐肃宗采纳臣下奏议,改任李光弼为河南副元帅,都统河南、淮南等八道行营节度使,出镇临淮(今江苏盱眙北),保障朝廷的财赋来源地区秩序稳定,保障江淮之间漕运畅通。八月,李光弼带兵开赴河南行营。同年底,唐肃宗另行任命殿中监李若幽为户部尚书兼御史大夫,持节充朔方、镇西北庭、兴平、陈郑等州节度行营兵马及河中节度都统处置使,出镇绛州(山西额绛),接替李光弼。李若幽出身皇族,性情刚直,有吏干之才。因而被授予重任,并赐名李国贞。
宝应元年(762)二月,太原士兵哗变,杀死河东节度使邓景山,自推都知兵马使辛云京为节度使。不久,绛州(今山西新绛)驻军又乱,前锋将王元振,杀了行营都统李国贞,在翼城(今山西翼城)的镇西北庭行营兵也杀了节度使荔非元礼,推裨将白孝德为节度使。一时间唐军陷入了一片混乱当中,士兵们四处抢劫。在得知这一消息后,唐肃宗忧心忡忡,担心这些士兵趁乱联合起来同河北叛军联络,这样的话,朝廷就岌岌可危了。东河地区的驻军大部分是原属郭子仪统帅的朔方军,唐肃宗担心另派其他后起的将领难以驾驭,在这种危急的情况下,才想起起用德高望重的郭子仪为朔方、河中、北庭、潞泽节度行营兼兴甲、定国等军副元帅,同时为了笼络军心还晋封郭子仪为汾阳郡王,出镇绛州。
这个时候的郭子仪已经66岁了,头发早已花白。临行之前,他要求进见唐肃宗。唐肃宗当时正在生病,大臣们没有人能见到他,郭子仪对传话的太监说:“老臣受命,将死于外,不见陛下,死不瞑目。”太监将这一番话传达给了唐肃宗,随后,唐肃宗才把他召到卧室,对他说:“河东的事务,就全托付给你了。”郭子仪听了,禁不住声泪俱下。随后,他就风尘仆仆地奔赴绛州就任。