這批埋伏的兵馬,就是先軫湊近胥臣耳邊密授的計策之一。古時軍隊本來照一般的規定,擊鼓是進軍,嗚鑼是收軍。先軫的伏軍故意規定鳴鑼為進軍的信號,為的是給楚軍製造混亂。胥臣見這批“猛虎”已將陳蔡的軍隊衝垮,門勃的後軍也亂了陣腳,就率領眾將乘亂衝殺了過去。隻殺得人倒車翻,屍橫遍地。門勃也被射中麵頰,帶箭逃跑。整個楚軍的右軍全線崩潰。
晉將欒枝又派遣士卒,假扮成陳蔡軍的士兵,打著楚右軍的旗號,向三軍主帥成得臣報告說:“我右軍已擊垮敵陣下軍,大獲全勝。”成得臣聽到報告,高興地說:“不出我之所料。”他又親自登上了望車觀望,果然遠遠望見晉軍潰逃,一路上塵土滾滾,遮天蔽日。
於是立即下令,左軍火速進兵追擊。
楚將門宜申見對麵陣中有一麵大旗高高挑起,料想是晉軍的主將,於是抖擻精神,驅動戰車衝殺了過去。晉軍中狐偃、狐毛趕緊上前接戰。剛戰了幾個回合,見後麵的軍隊亂哄哄地往回敗走。狐偃、狐毛隻好撇下門宜申,急忙回車便走,遠遠望見大旗也往後退,門宜申認為晉軍已全線潰敗了,便指揮軍隊盡力追趕。
門宜申正追趕得起勁,忽聽一聲鑼響,四麵喊聲大起。晉軍主帥先軫和大將郤溱各引著一隊精兵攔腰殺來,把楚軍截成數段。狐毛、狐偃又掉轉車頭殺了回來,三下裏合力夾攻。楚軍的軍隊驚嚇得四處潰逃。門宜申也被自己敗逃的兵士衝得站不住腳,隻得奪路逃跑。剛剛逃出重圍,稍微鬆了一口氣,又被一路伏兵截殺了一陣。
門宜申把車仗、馬匹、軍械全部丟棄,混雜在步卒中,爬山逃跑了。
原來,成得臣所看到的晉軍敗逃,是先軫事先布置好的。先軫讓欒枝的士卒砍下樹枝,拴在戰車的後麵,打馬來回飛跑,那樹枝揚起遮天蔽日的塵土,騙得貪功冒進的楚軍追趕。狐毛讓士卒扛著假設的主帥旗往回撤,也是為了裝扮成潰敗的假相,引誘楚軍上當深入。楚軍完全按照先軫的設想,鑽進張好的網裏。先軫讓祁瞞守住中軍虛建的大旗,任憑楚軍百般討戰,也不要出來應戰。自己卻率領精銳部隊,偷偷地從後麵出來,抄小路來阻擊敵人的追軍,當他從側斜裏突然衝殺出來時,楚軍就全部亂了。
楚軍的左右軍幾乎全軍覆沒,成得臣還不知道,對左右說:“估計此時晉軍該全線潰敗了。”他要最後出動,前去活捉重耳。於是舉著胳膊高聲喊道:“今天要是讓晉軍活著跑掉一個,我也不再回楚國!”正在他耀武揚威、不可一世時,先軫的部隊殺到了。兩下裏混戰了多時,欒枝、胥臣、狐毛、狐偃的兵也殺到了。幾路人馬把成得臣團團圍住。這時,成得臣才知道他的左右兩路軍隊全都潰敗了。
他再也無心戀戰,急忙傳令撤兵,無奈晉軍圍困得太厚,楚兵已被分割成十多塊,首尾不能相顧,大部分士兵都作了晉軍的俘虜。
成得臣的兒子成大心才15歲,有一身好武藝。這時他率領了五六百人,往來衝殺,左衝右突,以一當十,保護著他的父親,殺開一條血路,逃了出去。小將殺出了重圍,回頭不見門越椒,又返回來殺入重圍。那門越椒在萬馬軍中不見主帥成得臣,又在陣中往來尋找,正急得沒法,恰好遇見小將成大心。成大心告訴他:“父帥就在前麵,將軍不可戀戰,速速隨我殺出!”門越椒和小將合在一處,齊心奮力,殺出重圍,保護著成得臣逃了回去。