晉國當然不甘示弱。這一年的夏天,晉景公派荀林父為大將,先軫的孫子先彀(音hú)為副將,率領六百輛兵車,去援救鄭國。大隊人馬到了黃河邊上,探子報告,鄭國已經投降,楚國正在往回撤兵。荀林父本來就不願意打仗,聽到這個消息,立刻決定退兵。先彀堅決不同意,帶著自己的一隊兵車,渡過黃河追擊楚軍去了。趙同、趙括也認為自己父兄勞苦功高,也不聽荀林父的將令,帶上隊伍跟著先彀過河去了。荀林父沒有辦法,隻好下令全軍過河。
楚莊王聽說晉軍已經渡過黃河,便召集部將們商量對策。令尹孫叔敖主張同晉軍講和,然後退兵。一批年輕的將士都主張開戰。楚莊王一時拿不定主意,有一個叫伍參的小臣說:“晉軍主將荀林父剛掌大權,沒有威信,副將先彀倚仗先人的功勞,瞧不起荀林父,三軍的將領想要主動出擊,又沒有權力。士兵們不知道聽誰的,晉軍上下不同心,恐怕有傷我們楚國的尊嚴吧?”楚莊王聽伍參分析得入情入理,便下令楚軍擺開陣勢,將戰車一律朝向北方,準備出擊。
孫叔敖見晉軍有六百輛兵車,實力雄厚,總是放心不下,他對楚莊王說:“我看不如先派人去講和,他們如果不同意和,非要打,我們再迎戰也不遲。那時候,理就在我們這邊了。”楚莊王接受了這個建議,派蔡鳩居出使晉軍。荀林父派人接待蔡鳩居,表示同意講和,並且提出雙方同時退兵。蔡鳩居完成了使命,準備返回楚營。誰知先彀早就在營帳外麵等著,他見蔡鳩居出來,一把攔住道:“你回去告訴你們國君,我們這次來,不把你們殺個落花流水,決不收兵!”蔡鳩居十分氣憤,沒有搭理先彀,繼續往外走,剛到軍營口,又碰上了趙同、趙括。這兩個人拿弓點著蔡鳩居的頭大罵不止。
蔡鳩居跑回楚營,把他受侮辱的情況向楚莊王講了一遍。莊王大怒,問:“誰敢打頭陣,給晉軍點厲害瞧瞧?”大將樂伯挺身而出,跨上戰車,直奔晉軍大營,戰車沒跑多遠,樂伯就碰上了十幾個巡邏的晉兵。樂伯也不說話,一箭一個,一連射倒三個晉兵,又下車活捉一人,然後跳上車,往回便走。晉軍看到楚將殺人,分三路追來。樂伯毫不畏懼,他放聲大喊:“晉將小心,我左邊射馬,右邊射人,看箭!”說完左一箭、右一箭地射起來。果然箭無虛發,左邊射倒三四匹馬,右邊射傷三四個人,嚇得晉軍誰也不敢再追。
荀林父見楚軍來挑戰,急忙又派魏錡(qí)去講和。魏錡就是跟隨晉文公重耳逃難的魏仇的兒子。魏錡想當大夫,沒有當上,一直不滿,恨不得晉軍失敗。荀林父派他去講和,他卻下了戰書,回來後對荀林父說:“楚王不同意講和,一定要決一勝負。”
晉將趙旃(zhān)認為自己的本事高強,總想露一手給主將看看。到晚上,他乘著天黑帶領部下去偷襲楚營,不小心被楚兵發覺。楚莊王駕車就追。楚軍將領見莊王親自出擊,紛紛跟了上去。孫叔敖對莊王說:“晉軍欺人太甚,既然眾將都出來了,咱們不如乘其不備,殺過去!”這時候,天還不亮,楚莊王下令出擊。霎時間,鼓聲如雷,車馬飛馳,楚軍將士爭先向晉國軍營衝去。晉軍將士睡得正酣,一點沒有準備。荀林父聽到鼓聲,急忙下令抵抗。兩國軍隊在邲(bì)城(鄭地,今河南省鄭州東部)郊外大戰起來。晉兵士氣不振,指揮不靈,抵抗不力。而楚軍一鼓作氣,往來衝殺,沒多大功夫,就把晉軍打得潰不成軍了。
楚莊王率領楚軍開進邲城。有人請他乘勝追擊。楚莊王說:“楚國自從城濮之戰敗給晉軍,就不敢和晉國爭鋒,這次勝利,可以洗掉恥辱啦。晉國楚國都是大國,早晚總得講和,何必多殺人呢?”於是,下令楚軍立即收兵,放晉國官兵渡河回去。
邲城一戰,擁有六百輛兵車的晉國大軍,一夜之間,幾乎全軍覆滅。三年不鳴的楚莊王終於一鳴驚人,他繼齊桓公、晉文公、秦穆公之後,也當上了諸侯霸主。