()公元前632年,晉、齊、秦、宋四**隊進駐衛國的城濮(今山東範縣),準備與楚國決戰。
楚國聯合陳、蔡、鄭、許的軍隊,搶先佔據險要地勢,背靠丘陵地帶安扎營寨。
交戰前夕,晉文公猶豫不決。一是楚軍實力雄厚,又佔據了有利地形,擔憂戰斗失利;二是丟不開楚王以前對他的恩惠,不想以怨報德。狐偃很焦急,勸諫說︰「出戰吧!不用擔心,只有打敗楚國才能贏得諸侯的信賴!如果不能取勝,晉國外有大河險阻,內有千山萬壑,誰也不敢怎樣!」欒枝也說︰「主公豈能因楚子的小恩小惠再三退讓?漢水以北有多少姬姓國家被楚國滅亡?不遏制它,中原諸侯必將繼續遭受凌辱。況且,我軍已‘退避三舍’,兌現了承諾。現在士氣正旺,又有宋、齊、秦三軍助戰,我軍必勝!」文公又讓狐偃佔卜,顯示「吉利」,于是決定出戰。
傍晚,楚令尹子玉派斗勃向晉文公挑戰說︰「楚王以為晉侯有上天扶助,那就請與晉國的勇士作一次決斗吧!您可以靠在車前的橫板上看看熱鬧,我也陪您一起觀看,怎麼樣?」文公派欒枝回答說︰「寡君不敢忘記楚王的恩德,故而退避三舍,一直停留在此,不敢進軍。既然令尹不肯退兵,那就請您準備好戰車,明r 清晨見面!」
文公召集趙衰、狐偃、先軫等人,反復切磋,作出會戰方案︰命狐偃、狐毛領上軍,同秦將白乙丙合兵迎戰楚軍左師;欒枝、胥臣領下軍,同齊將崔夭合兵迎戰楚軍右師;先軫、郤溱統帥中軍,與楚令尹子玉的中軍對峙;荀林父、士會各領五千人馬為左右翼,以備接應;國歸父、小子各領本國人馬,繞道楚軍背後埋伏,準備取勝後奪取楚軍大營。派人密授齊、秦各軍,天亮前完成集結。
次r 黎明,晉國出動五萬j ng兵、七百乘戰車,列陣于莘北之野。趙衰、羊舌突、茅筏等人,陪同文公登上古莘國的舊城廢墟,視察晉軍陣容。文公見裝備齊全,軍陣嚴整,對趙衰說︰「先軫果然不負眾望,排列有序,調度有方,僅此威勢就足以壓倒子玉。可以開戰了!」
楚軍列陣于晉軍之南。子玉統帥中軍,以若敖的一百八十輛戰車為主力;子西(斗宜申)領左軍,與鄭、許合兵;子上(斗勃)領右軍,與陳、蔡合兵。交戰前,子玉口出狂言,鼓動諸將道︰
——努力吧,今天以後就沒有晉國了!
等到r 出時分,雙方擊鼓開戰。
秦將白乙丙領頭陣,陳、蔡將士y 搶頭功,率先出陣迎戰。未及交鋒,白乙丙忽然領兵退走。陳、蔡軍隊正要追擊,只听一聲炮響,晉軍副將胥臣帶領一隊戰車迎面沖殺過來,陳、蔡兩軍頓時大亂。原來胥臣出奇制勝,在馬背上披了虎皮,對方戰馬遠遠望見,以為虎群襲來,驚恐跳躍,四散狂奔,互相踐踏,一片混亂。白乙丙調轉馬頭,與胥臣趁機掩殺過去,蔡將公子印被胥臣劈死車下,楚將子上被白乙丙sh 中右肩,帶箭逃亡。楚右軍潰敗,晉軍首戰告捷。
楚軍左部與右部失去聯系,晉下軍的欒枝派人假冒陳、蔡士兵,向楚軍左部謊報軍情,聲稱已打敗晉軍,正在追擊潰兵。欒枝又讓士兵把樹枝拖在戰車後邊,揚起塵埃,做出潰退的假象。晉上軍的狐偃、狐毛在車上豎起兩面大旗,也率部佯裝後退,引誘楚軍追殺。
楚將子西遠遠望見北方塵土飛揚,晉軍的旗幟若隱若現,真以為晉軍潰敗,立即率領左軍人馬追殺過來。晉中軍的先軫、郤溱已等候多時,見楚軍人馬追來,遂令擊鼓,率兵橫沖過去,將楚軍攔腰斬段。狐偃、狐毛听見鼓聲,立刻調轉馬頭,掩殺過來。子西的左軍受到兩面夾擊,倉皇應戰,節節敗退。子西潰逃途中,又遭遇晉軍伏擊,幾乎全軍覆沒。跟隨子西的鄭、許軍隊,也一並遭殃,死傷慘重。
此時,國歸父、小子憖接到命令,立刻率領本國兵馬從丘陵後邊殺出,奪取楚軍大營,繳獲全部輜重糧草。
楚令尹子玉恃勇而驕,听說左、右二軍戰敗,竟全然不信。直到副將子西、子上派人求救,方才大驚失s ,頹然跌座。子玉孤立無援,不敢戀戰,下令即刻收兵,使中軍幸免于難。
此時,各路關隘均被晉軍把守,楚軍的退路已被切斷。文公在莘墟高地,看見楚軍狼狽撤退,遂傳諭各軍,只需將楚軍逐出中原,不必濫殺亂擒,以免辜負楚王的恩德,過分傷害兩國的情分。于是,楚軍才得以月兌逃。但子玉並不領情,以為自己勇猛,晉人不敢阻攔。
楚成王怨恨子玉狂傲,不值姑息,派人給子玉傳話說︰「申、息兩地的子弟傷亡太多,假如你回來,如何向二邑的父老交待?」子玉自知罪不當赦,無奈地說︰「依楚之法,兵敗領死,更何況違逆王命的人呢?」于是在途中自刎而死。
文公听說子玉已亡,喜形于s ,興奮地說︰「子玉自取其禍!我們從外面攻擊,楚王自內部誅殺,可謂內外夾擊啊!這樣一來,晉國就沒有後患了。」
晉軍休整三r ,盡情享受楚軍留下的給養,然後凱旋回國。
甲午r ,晉文公到達鄭國的衡雍,命軍隊在踐土(今河南原陽、武陵之間)修建王宮,準備邀請周王在此接受俘虜和戰利品,以示遵王之義。同時也想借此機會,炫耀戰功。
鄭國招引楚軍進犯中原,並派兵參戰。楚軍失敗後,鄭文公恐懼,慌忙派人向晉國求和。晉文公派欒枝前往鄭國,與鄭伯擬定盟約。五月,晉文公與鄭伯在衡雍結盟。