雖然範文子有理有據的,但是大家都不鳥他,要和楚軍決一勝負。楚軍也想在晉國的援軍到達前速戰速決,於是在一天的清晨趁晉軍不備,迅速開進到晉軍營前排兵布陣。晉軍營前的路不是很好,楚軍又逼的這麼近,戰車不好開出去列陣,一時間處於不利地位。欒書想著堅守不出,等待援軍到來。
新軍將郤至則認為應當主動出擊,並列出了楚軍的六大弱點,“第一,楚軍中軍將子反和左軍將子重關係不好;第二,楚軍水平參差不齊;第三,楚國的盟軍鄭國列個軍陣都不利索;第四,隨楚出征的蠻軍連陣法都不懂;第五,我今天看了黃曆,說不適合打仗,他們今天出兵,不吉利;第六,楚軍裡嘰嘰喳喳的,紀律太差了。”
郤至分析得非常到位,晉厲公決定帶兵出擊,同時又采納了範文子的兒子士匄(gài)的建議,將軍營內的井灶填平,就地列陣,蓄勢待發。晉厲公先派中軍將、中軍佐各率一支精銳出營,從兩側向楚軍發起進攻。楚共王看到晉厲公所處的中軍兵力薄弱,馬上就帶著大部隊衝了過來,準備先乾掉晉厲公,結果遭到了晉中軍的頑強抵抗,晉將魏錡搭弓瞄準楚共王,一箭射中楚共王的左眼,楚共王痛的嗷嗷大叫:“養由基快來給我報仇。”
楚國的神射手養由基趕了過來,領了兩支箭,第一箭就把魏錡射死了,他就把第二箭還給了楚共王。為啥神射手不繼續射箭了呢,這都要怪楚共王自己。在戰前,養由基與另一個ADC潘黨比試箭法,將七層皮甲射穿後,拿給楚共王秀了一下箭法,楚共王覺得他太囂張,說:“丟死個人了,炫耀個啥,你遲早死於射箭。”
於是養由基就不敢射箭了,隻有楚共王給他箭,他才敢用。由於楚共王負傷,晉軍這邊大舉開進,楚軍慢慢向後撤退。這次戰鬥從早上打到晚上,楚軍雖然受挫,但仍奮勇殺敵,雙方一時間分不出勝敗。眼看入夜了,雙方決定修整一晚,第二天再繼續乾架。
當晚,楚國司馬子反視察戰後情況,指揮戰備工作。結束以後,平日喜歡喝酒的子反喝高了,醉地不省人事。晉國那邊故意放鬆警惕,讓一些楚國俘虜逃了回來,報告晉軍的戰備情況。楚共王知道晉軍也所有準備後,就去找子反商量對策,誰知道下屬來報子反喝醉了叫不動,楚共王吐槽道:“老子打仗眼睛都瞎了一隻,我還沒休息呢,指揮官卻喝醉了,我還打個毛呀。算了,我們各回各家,各找各媽。”楚共王非常無奈,另一方麵也擔心晉國的援軍到了夾擊自己,於是趁著夜色帶領楚軍撤退了。
子反坐在車上呼呼大睡,醒來的時候才發現全軍在撤退,意識到自己犯錯了。子反是楚莊王的弟弟,也就是楚共王的叔叔,楚共王怕子反想不開,還勸他說:“這次是我親自率兵打仗了,輸了不能全怪你。”子反很不好意思,說:“不不不,確實是我的鍋。”楚國令尹子重和子反平時關係不好,於是派人嘲諷他:“損失了這多軍隊,你自己看著辦吧。”子反聽後羞愧難當,拔劍自殺。
楚軍撤退的次日,晉軍進占楚國營地,吃著楚軍剩下的糧食,修整三日後凱旋而歸。晉國雖贏得了本次戰爭,但楚共王撤退及時,保存了大量主力,晉楚相爭,仍在繼續。但是晉國這邊,即將迎來一場內亂,印證了範文子的預言。