寶應元年公元762年十月,唐代宗以雍王李適為天下兵馬大元帥,朔方節度使、大寧郡王仆固懷恩為副元帥,率諸道節度使及回紇兵會攻洛陽。
仆固懷恩任命回紇將軍左殺為先鋒,領河東、朔方節度行營及鎮西、回紇兵馬赴陝州,並令諸道節度使齊頭並進,合圍洛陽。觀軍容使魚朝恩、陝州節度使郭英乂為後殿,他帶領主力從澠池方向進軍洛陽。命令陳鄭節度使李抱玉進攻河陽,向叛軍全線出擊。
史朝義接到唐軍進攻的報告,與元帥田承嗣商議退敵。田承嗣想保存實力,對史朝義說道:“唐朝從回紇借兵十萬,加上幾個軍鎮的軍隊,總兵力超過二十萬。他們這次下了決心要攻克洛陽,臣建議撤出洛陽,回到河北,將張獻誠、李懷仙、安忠誌、薛嵩、薛忠義的軍隊集中一起。與唐軍決戰,一舉擊垮唐軍主力。再趁勢反擊,不但可以保住根基,還可以打垮唐朝。”
史朝義說道:“當時攻克洛陽下了多大的力氣呀?現在放棄,朕不甘心。元帥可派一軍前去抵擋,試探唐軍的虛實。”田承嗣不好反對,安排一支軍隊,前去攔截。
仆固懷恩的主力到了黃水,遇到燕軍的抵抗。兩萬燕朝的先頭軍隊,構築柵欄企圖阻擋唐軍有進攻。仆固懷恩在西原上布陣,廣張旗幟以當疑兵,命右相兵馬使仆固瑒帶領驍騎從山北迂回進行攻擊。命令左殺帶領回紇軍隊傍南山正麵對陣,向東北攻擊。
仆固瑒是他的兒子,上陣父子兵,自是全力以赴。左殺也想立功,從中撈一把,不遺餘力。兩軍包抄,舉旗為號,兩邊夾擊。阻擋唐軍的燕軍將領是田承嗣的侄兒田悅和懷化將軍畢思琛,田悅十分英勇,深得田承嗣喜愛,對他比對親兒子還好。燕軍用柵欄為屏障,阻擊唐軍的攻擊,同時向兩邊攻擊的唐軍發射駑箭,軍隊的士氣很高。
仆固瑒軍隊和左殺的回紇兵受阻,連續幾次衝鋒,都被擊退,唐軍前進不得。仆固懷恩命令安西節度使馬璘和魚朝恩上前增援。魚朝恩令射手五千人下馬,構建柵欄,持弓弩向叛軍柵欄內發射箭矣,掩護衝擊的軍隊。密集的箭雨灑向柵欄內的燕軍,他們隻要露頭,就會中箭,不死也要負傷。
柵欄內的燕軍不敢抬頭,不能發射駑箭,陣形一片混亂。田悅來時得到田承嗣的叮囑,任何時候都要保存實力。命令軍士隱敝,放棄對敵攻擊。
這一幕被河西節度使馬璘看到,向部下命令:“將士們與我一起衝鋒,叛軍垮矣!軍士們奮勇向前!”一馬當先衝向燕軍。馬璘遂援旗而進,單騎奔擊,衝到了柵欄前麵,槍挑欄杆奪取兩牌,突入萬眾之中。
柵欄內的燕軍,無心戀戰,左右披靡,大軍乘勢而入,田悅大敗,帶領一萬六千多人,倉惶撤退。唐軍殺敵一千,生擒一千六百人,一鼓作氣奪取了要塞。仆固懷恩整頓軍隊,跟蹤追擊。燕朝丞相許叔冀按史朝義的命令,帶領兩萬鐵騎來援,與田悅畢思琛合兵一處,列陣於昭覺寺。