当晋军直退了三舍之地,计90华里之遥,退到了一个名叫城濮的地方(春秋卫地。在今河南陈留县;一说在今山东濮县南临濮城。),方安营息马,驻扎了下来。恰在这时,齐孝公命上卿国懿仲之子国归父为大将,崔夭为副将,率师前来参战;与此同时,秦穆公也遣其次子小子憗为大将,白乙丙为副将,率师前来助阵。晋军移营退避,楚军将帅不识其谋,人人喜形于色。斗勃对元帅成得臣说:“晋侯以君避臣,于我已有荣名矣。不如借此旋师,虽无功,亦免于罪。”得臣不知见好就收,反而大怒说:“吾已请将添兵,若不一战,何以复命?晋军既退,其势已怯,宜疾速追!”传令:“加速追击!”紧随晋军其后,也来到了城濮,形成南北对峙之势。得臣相度地势,凭山阻泽,据险为营。晋谍人报于先轸元帅说:“楚据险为寨,傍水结营,易守难攻!”众将听之,有人谏言,宜出兵争寨。先轸不愧为智帅,他对大家说:“夫据险以固守也。子玉远来,志在战而不在守。虽据险,安所用之?”此时,晋文公见楚师兵多势众,思想上有点狐疑,召咎犯而问曰:“楚众我寡,奈何而可?”咎犯对曰:“臣闻繁礼之君,不足于文;繁战之君,不足于诈。君亦诈之而已。”文公以咎犯言告雍季,雍季曰:“竭泽而渔,岂不获得?而明年无魚;焚薮而田,岂不获得?而明年无兽。诈伪之道,虽今偷可,后将无复,非长术也”(以上对话皆见于《吕氏春秋·义赏》)文公认为,“临难用诈,足以却敌。”遂采纳了咎犯之谋。为了统一大家的认识,文公于战前召集宋成公、齐将国归父、崔夭,秦公子小子憗、白乙丙,在城濮会见。在会见会上,狐偃说:“两军对垒,出战吧!战而得胜,一定得到诸侯;如果不胜,我国表里山河,岂奈我何?(原文见《左传·鲁闵公二十八年》)”晋文公问:“楚对我的恩惠怎么办?”栾枝说:“汉水以北的姬姓诸国,楚国都把他们吞并完了。想着小恩惠而忘记大耻辱,是大不义也,依臣之见,不如出战!”文公乃释然,决心与楚交战。当此时,军吏报称:“楚国使人来下战书。”文公启而观之,书云:“请与君之士戏,君凭轼而观之,得臣与富目焉。”狐偃说:“战,危事也,而子玉曰戏,彼不敬其事也,能不败乎?”文公使栾枝答其书云:“寡人未忘楚君之惠,是以敬退三舍,不敢与大夫对垒。大夫必与观兵,敢不唯命!诘朝相见。”文公遂即命先轸再阅兵车,共700乘,精兵达50000之众。加上齐、秦之兵,约计70000多人。文公阅罢兵,于第二天昲晓,由赵衰、孙伯纠、羊舌突、茅武等一班文武护驾,登上有莘之墟,以观其兵。他目睹先轸,指挥有方,进退有序,用兵如神,叹曰:“此郤谷之遗教也。以此应敌,寡人这颗心落肚也。”先轸调兵遣将,使狐毛、狐偃率上军,同秦国副将白乙丙攻楚左师,与斗宜申交战;使栾枝、胥臣率下军,同齐国副将崔夭,攻楚右师,与斗勃交战。并命令遵计而行。自与郤溱、祁瞒帅中军结阵,与成得臣对阵。并遣荀林父、士会各率5000人马,准备接应。再使齐国归父、秦小子憗,各率本国之兵,从间道抄出楚军敌后埋伏,只等楚军败北,便可杀入据其大寨。虎将魏犨,此时胸伤已愈,自请为破楚先锋。先轸对其说:“留老将军有重任。从有莘南去,地名空桑,与楚连谷邑接壤,老将军可领一枝兵,埋伏于此,截楚败兵归路,擒拿子玉。”魏犨一听说擒拿子玉就来劲,欣然领兵而去。再使舟之侨于河南准备船只,伺侯装载楚军辎重,不得有误。先轸一切安排就绪,列阵于有莘之北,与列阵于有莘之南的子玉对阵。子玉传令:命左右二军先进,中军继之。晋下军栾枝,打仗善于动脑,他打探到楚右师,以陈、蔡之兵为前队,其两国之兵又怯战易动,喜曰:“打仗先拣软者欺,就先从陈、蔡开刀!”果如栾枝所言,晋军一冲杀过去,陈、蔡之兵便不战自乱,结果引发楚右师不攻而溃。陈将辕选、蔡公子印,为扭转败局,奋勇向前,冲晋阵而来,未及交锋,晋兵突然后退。斜刺里杀出一队用虎皮蒙背的战车,敌马见之,以为真虎,惊慌乱窜,牵车回奔,刹时冲动了斗勃的阵脚。晋胥臣和秦白乙丙,乘乱掩杀了过去,胥臣刀劈公子印于车下,白乙丙弯弓射中了主将斗勃。斗勃带箭而逃,楚右师大败,死伤不计其数。栾枝使军卒,假扮成陈、蔡军人,打着陈、蔡的旗帜,假报军情,说:“右师已得胜,请速速出兵,共建大业。”子玉登高望之,晋军北逃,溃不成军,大喜说:“晋下军果败矣!”急催左师奋力前进。斗宜申见晋营大旗高悬,以为是主寨,冲杀过去,却是一座空寨,其军还没有转过身来,就被晋军拦腰截断,首尾不能相顾。狐毛、狐偃翻身复战,两下夹攻,楚左军首尾遭创,腹背受敌,宜申不得已,杂于士卒,弃军而遁。楚元帅子玉,虽恃勇求战,但想起楚王的教戒,却也十分谨慎。他万万没有想到,左、右两师会败的如此之惨,这时他只有孤注一掷,凭勇一博了。他命令中军击鼓,使其子小将军成大心出阵。成大心初生牛犊不怕虎,杀入晋营,左冲右突,如入无人之境。晋将祁瞒与其战了几十个回合,不分胜负,楚将斗越椒怕小将有失,暗中发了一箭,祁瞒负箭而逃,斗越椒乘势杀入晋中军,一箭把帅旗射落了下来。晋军士卒不见了帅旗,即时大乱。混战多时,栾枝、胥臣、狐毛、狐偃赶了过来,围战斗越椒和成大心。斗越椒和成大心,不失为两员饶将,合做一处,各奋神威,杀出了重围。晋文公在有莘山上,观见晋兵得胜,忙使人奉旨戒先轸,让传喻三军:“但逐楚兵出了宋、卫之境足矣。不必多事擒杀,以伤两国之情,负了楚王施惠之意。”对此,曾有诗赞曰:“避兵三舍为酬恩,又诫穷追免楚军;两敌交锋尚如此,大义施报晋文公。”
楚元帅成得臣,见到爱子成大心、大将斗越椒,从晋营突围归来,潜然泪下,喜、悲、忧一下子涌上心头。喜的是,二人杀出重围;悲的是,二人遍体鳞伤;忧的是,如此败局,何以面见楚王和家乡父老?想到此,便欲自裁。斗越椒劝说:“留得青山在,不怕没柴烧,元帅何须自寻短见!”三人灰心丧气,且又不容迟疑,急投大寨而去。孰料大寨已被秦、齐两军夺去,三人遂成了丧家之犬,急忙忙逃奔楚国,路上遇见了斗勃、斗宜申,五人抱团,率残兵奔逃,刚逃入空桑地面,又遇上劲敌魏犨。魏犨先前在楚,独降貘兽,楚人无不服气神勇,成得臣等五将,今日狭路相逢,只得奋起抗争。魏犨力战五将,点水不漏。正战的难解难分之际,忽见一人大叫:“魏将军罢战,先元帅奉主公之命:‘放楚将生还本国,以报出亡时款待之德。’”魏犨方才住手,命军卒让开中路,大喝:“饶尔等尽去!”成得臣等如漏网之魚,抱头鼠窜而去。回到楚国,得臣叹曰:“楚王纵然赦我,我亦无颜靣见申息之父老!”乃北向再拜,拔剑自刎而死。晋文公听到子玉自刎,一颗忧心方才落进到肚里。众将不解地问:“城濮大捷,主公不喜,子玉自刎,主公才喜形于色?”文公对众将说:“楚国能奈何我晋国者,惟子玉也!子玉去,人莫予毒我者,寡人怎能不喜!”史书典籍,对晋楚城濮之战,给于晋文公极高的评价。《左传·鲁闵公二十七年》:“出谷戎,释宋围,一战而霸,文之教也(译:赶走谷地的驻军,解除宋国的包围,一次战争而称霸诸侯,这都是晋文公教化的结果。)。”《左传·鲁闵公二十八年》又说:城濮之战后“晋师三日馆谷,及癸酉而还(译、晋军休整三天,吃楚军留下的粮食,到初六起程回国)。”《国语·周语十四》:“襄王十六年,立晋文公。二十一年,以诸侯朝王于衡雍,且献楚捷(指战利品),遂为践土之盟,于是乎始霸。”
(10)践土会盟,称霸诸侯
晋文公在城濮之战中,大败楚师,移兵楚寨,在楚寨中休整三军。楚寨军资丰厚,众将戏曰:“此楚人馆谷吾三军矣。”文公军令如山,赏罚严明。他在三军休整中,办的第一件事,就是整饬军令,惩办违令违纪者。先轸元帅押解祁瞒晋见文公,奏其违命辱师之罪。文公说:“若不是寡人上、下两军旗开得胜,稳住大寨,岂能致强楚于败北呢?你违吾军令,乱吾之师,该当何罪?”遂即命司马赵衰定其罪,斩祁瞒以戒三军。同时颁布君令:“今后有违君命者,皆依此而行!”晋三军在楚军大寨,休整了三天,文公即命班师。当大军行至黄河边,就要渡河时,先头部队禀报:“渡河舟楫,尚未备齐。”文公使人召舟之侨,侨却不在。究其原因,舟之侨原是虢国的降将,事晋已久,满指望重用立功,却差他赴南河聚集船只,心中不平。孰料,就在此时接到家书,其妻在家病重。子侨左思右想,这可怎么办呢?一头是君命,一头是家书……他想来想去,产生了侥倖心理,他认为晋楚交兵,必然日久,未必近日即可班师,不如凑这个空子,回国回家,探视探视,亦未嘗不可。这是个错误的判断,他没有料到,文公运筹帷幄,先轸用兵如神,于四月初一移师,初二即师至城濮,初三即在莘北摆开阵势,与楚师形成南北对峙。初五,就与楚师展开决战。从黎明战役打响,至傍晚就大战告捷,楚败晋胜。晋军进入楚寨,只休整了短短三天,就班师而开拔南河。这前前后后,也就半个来月的功夫,晋师就来到了黄河岸畔。晋文公传令他,下人禀报他探家未归。误三军济河,文公大怒,欲令军士四下搜捕民船。先轸说:“南河百姓,闻吾败楚,谁不震恐?若使搜捕,必然逃匿。不如出令,以厚赏募之。”文公说:“善!”先轸便以布告形式,悬赏于军门。百姓看到布告,争先恐后,应募船只,短短几日,就集募了上千条大小船只,帮助晋军渡过了黄河,进入郑国地界。文公对赵衰说:“寡人在曹、卫之耻已雪矣,惟郑仇未报,奈何?”赵衰回答说:“君旋师过郑,不患郑之不来也!”文公听后,默然从之。