二十八年春季,晋文公准备攻打曹国,向卫国借路。卫国不答应。回来,从南河渡过黄河,入侵曹国,攻打卫国。正月初九日,占取了五鹿。二月,郤縠死。原轸率领中军,胥臣辅助下军,把原轸提升,是为了重视才德。晋文公和齐昭公在敛盂结盟。卫成公请求参加盟约,晋国人不答应。卫成公想亲附楚国,国内的人们不愿意,所以赶走了他们的国君,来讨好晋国。卫成公离开国都住在襄牛。

  公子买驻守在卫国,楚国人救援卫国,没有得胜。鲁僖公害怕晋国,杀了公子买来讨好晋国。骗楚国人说:“他驻守没到期就想回来,所以杀了他。”

  晋文公发兵包围曹国,攻城,战死的人很多。曹军把晋军的尸体陈列在城上,晋文公很担心。听了士兵们的主意,声称“在曹国人的墓地宿营”。军队转移。曹国人恐惧,把他们得到的晋军的尸体装进棺材运出来,晋军由于曹军恐惧而攻城。三月初八日,进入曹国,责备曹国不任用僖负羁,做官坐车的反倒有三百人,并且说当年观看自己洗澡,现在罪有应得。下令不许进入僖负羁的家里,同时赦免他的族人,这是为了报答恩惠。魏犫、颠颉发怒说:“不替有功劳或者苦劳的人着想,还报答个什么恩惠?”放火烧了僖负羁的家。魏犫胸部受伤,晋文公想杀死他,但又爱惜他的才能,派人去慰问,同时观察病情。如果伤势很重,就准备杀了他。魏犫捆紧胸膛出见使者,说:“由于国君的威灵,难道我敢图安逸吗!”说着就向上跳了很多次,又向前跳了很多次。晋文公于是就饶恕了他,而杀死颠颉通报全军,立舟之侨作为车右。

  宋国派门尹般到晋军中报告危急情况。晋文公说:“宋国来报告危急情况,不去救他就断绝了交往,请求楚国解围,他们又不答应。我们想作战,齐国和秦国又不同意。怎么办?”先轸说:“让宋国丢开我国而去给齐国、秦国赠送财礼。假借他们两国去请求楚国。我们逮住曹国国君,把曹国、卫国的田地分给宋国。楚国喜欢曹国、卫国,一定不答应齐国和秦国的请求。齐国和秦国对宋国的财礼喜欢,而对楚国的固执很生气,能够不打仗吗?”晋文公很高兴,拘捕了曹共公,把曹国和卫国的田地分给了宋国人。楚成王进入申城并住下来,让申叔离开穀地,让子玉离开宋国,说:“不要去追逐晋国军队!晋文公在外边,十九年了,而果然得到了晋国。险阻艰难,都尝过了;民情真假,也都知道了。上天给予他年寿,同时除去了他的祸害,上天所设置的,难道可以废除吗?《军志》说:‘适可而止。’又说:‘知难而退。’又说:‘有德的人不能抵挡。’这三条记载,适用于晋国。”

  子玉派遣伯棼向成王请战,说:“不敢说一定有功劳,愿意借此堵塞奸邪小人的口。”楚成王发怒,少给他军队,只有西广、东宫和若敖的一百八十辆战车跟去。

  子玉派宛春到晋军中报告说:“请恢复卫侯的君位,同时把土地退还曹国,我也解除对宋国的包围。”子犯说:“子玉无礼啊!给君王的,只是解除对宋国的包围一项,而要求君王给出的,却是复卫封曹两项。这次打仗的机会不可失掉了。”先轸说:“君王应该答应他的请求。安定别人叫做礼,楚国人一句话安定三国,我们一句话而使它们灭亡。我们就无礼,拿什么来作战呢?不答应楚国的请求,这是抛弃宋国;救援了又抛弃他,将对诸侯说什么?楚国有三项恩惠,我们有三项怨仇,怨仇已经太多了,准备拿什么作战?不如私下里答应恢复曹国和卫国来离间他们,逮了宛春来激怒楚国,等打起仗再说。”晋文公很高兴。于是把宛春囚禁在卫国,同时私下里允诺恢复曹、卫。曹、卫就与楚国断绝邦交。

  子玉发怒,追逐晋军。晋军撤退。军吏说:“以国君而躲避臣下,这是耻辱;而且楚军已经疲劳不堪,为什么退走?”子犯说:“出兵作战,有理就气壮,无理就气衰,哪里在于在外边时间的长短呢?如果没有楚国的恩惠,我们到不了这里。退三舍躲避他们,就是作为报答。背弃恩惠而说话不算数,要用这个来蔽护他们的敌人,我们缺理而楚国有理,加上他们的士气一向饱满,不能认为是衰疲。我们退走而楚军回去,我们还要求什么?如果他们不回去,国君退走,而臣下进犯,他们就缺理了。”晋军退走三舍。楚国骑士要停下来,子玉不同意。

  夏季,四月初一日,晋文公、宋成公、齐国的国归父、崔夭、秦国的小子慭驻在城催。楚军背靠着险要的地方扎营,晋文公担心这件事。听到士兵念诵说:“休耕田里的绿草繁茂,丢开旧草而对新的加以犁锄。”晋文公很疑惑。子犯说:“出战吧!战而得胜,一定得到诸侯;如果不胜,我国外有大河,内有高山,一定没有什么害处。”晋文公说:“对楚国的恩惠怎么办?”栾枝说:“汉水以北的姬姓诸国,楚国都把它们吞并完了。想着小恩惠,而忘记大耻大辱,不如出战。”晋文公梦中和楚王搏斗,楚王伏在自己身上咀嚼自己的脑浆,因而害怕。子犯说:“吉利。我得到上天,楚国伏罪,而且我们已经安抚他们了。”

  子玉派遣鬬勃向晋国挑战,说:“请和君王的斗士作一次角力游戏,君王靠在车横板上观看,得臣可以陪同君王一起观看了。”晋文公派遣栾枝回答说:“我们国君知道您的意思了。楚君的恩惠,没有敢忘记,所以待在这里。我们以为大夫已经退兵了,臣下难道敢抵挡国君吗?既然大夫不肯退兵,那就烦大夫对贵部将士们说:‘准备好你们的战车,忠于你们的国事,明天早晨将再见面。’”晋国战车七百辆,装备齐全。晋文公登上有莘的废城观看军容,说:“年少的和年长的,排列有序,合于礼,可以使用了。”就命令砍伐山上的树木,以增加武器。

  初二日,晋军在莘北摆开阵势,胥臣让下军分别抵挡陈、蔡军队。子玉用若敖的一百八十乘率领中军,说:“今天一定灭掉晋国了。”子西率领左军,子上率领右军。胥臣把马蒙上老虎皮,先攻陈、蔡两军。陈、蔡两军奔逃,楚军的右翼部队溃散。狐毛派出前军两队击退楚军的溃兵。栾枝让车子拖着木柴假装逃走,楚军追击,原轸、郤溱率领中军的公族拦腰袭击。狐毛、狐偃率领上军夹攻子西,楚国的左翼部队溃散。楚军大败。子玉及时下令收兵,得以不败。

  晋军休整三天,吃楚军留下的粮食,到初六日起程回国。二十七日,到达衡雍,为天子在践土建造了一座王宫。

  这一战役之前的三个月,郑文公派军队到楚国助战,因为楚军已经失败而害怕了,派遣子人九和晋国讲和。晋国的栾枝进入郑国和郑文公订立盟约。

  五月初九日,晋文公和郑文公在衡雍结盟。初十日,把楚国的战俘献给周襄王:驷马披甲的战车一百辆,步兵一千人。郑文公作为相礼,用的是周平王时的礼仪。十二日,周襄王设享礼用甜酒招待晋文公,又允许他向自己回敬酒。周襄王命令尹氏和王子虎、内史叔兴父用策书任命晋文公为诸侯的领袖,赐给他大辂车、戎辂车以及相应的服装仪仗,红色的弓一把、红色的箭一百枝,黑色的弓十把和箭一千枝,黑黍加香草酿造的酒一卣,勇士三百人,说:“天子对叔父说:‘恭敬地服从天子的命令,以安抚四方诸侯,惩治王朝的邪恶。’”晋文公辞谢三次,然后接受命令,说:“重耳谨再拜叩头,接受和宣扬天子的重大赏赐和命令。”接受了策书就离开成周。从进入成周到离开,三次朝见周王。

  卫成公听说楚军失败,害怕,逃亡到楚国,又到了陈国,派遣元咺奉事叔武去接受盟约。二十六日,王子虎和诸侯在天子的庭院里盟誓,约定说:“全部辅助王室,不要互相伤害!谁要违背盟约,就要受到神的诛杀,使他军队颠覆,不能享有国家,直到你的玄孙,不论老小。”君子认为这次结盟是守信用的,认为晋国在这次战役中能够用道德来进攻。

  当初,楚国的子玉自己制作了镶玉的马冠马鞅,还没有使用。作战之前,梦见黄河河神对他说:“送给我,我赐给你孟诸的水草地。”子玉没有送去。他儿子大心和子西派荣黄劝谏,子玉不听。荣黄说:“死而有利于国家,尚且还要去做,何况是美玉呢?和国家比起来这不过是粪土罢了。如果可以使军队成功,有什么可惜的?”子玉仍然不肯。荣黄出来告诉两个人说:“不是神明让令尹失败,令尹不以百姓的事情为重,实在是自取失败啊。”子玉失败之后,楚成王派使臣对子玉说:“申、息的子弟大多伤亡了,大夫如果回来,怎么向申、息两地的父老交代呢?”子西、大心对使臣说:“子玉本来要自杀的,我们两个阻拦他说:‘不要自杀,国君还准备杀你呢。’”到达连穀,子玉就自杀了。

  晋文公听说子玉自杀的消息以后,喜形于色,说:“没有人再来为害于我了。蔿吕臣做令尹,不过是维护自己罢了,并不是为了百姓。”

  有人在卫成公面前毁谤元咺说:“他已立了叔武做国君了。”元咺的儿子角跟随卫成公,卫成公派人杀了他。元咺并没有因此而废弃卫成公的命令,还是奉事叔武回国摄政。六月,晋国人听任卫侯回国。甯武子和卫国官吏、大族等在宛濮结盟,说:“上天降祸卫国,君臣不和谐,所以才遭到这样的忧患。现在天意保佑我国,让大家放弃成见而互相听从。没有留下的人,谁来守卫国家?没有跟随君王的人,谁去保卫那些牧牛养马的人?由于不和协,因此乞求在大神面前明白宣誓,以求天意保佑。从今天订立盟约之后,在外的人不要仗恃自己的功劳,留下的人不要害怕有罪。谁要违背盟约,祸害就降临到他头上。神明和先君在上,加以惩罚诛杀。”国内的人们知道了这盟约,才没有二心。

  卫成公比约定的日期先进入卫国,甯武子在卫成公之前,长牂把守城门,以为他是国君的使者,和他同乘一辆车进入。公子歂犬、华仲作为前驱,叔武正要洗发,听说国君来到,很高兴,用手抓着头发跑出来,前驱却把他射死了。卫成公知道他没有罪,把头枕在尸体的大腿上而哭他。歂犬逃跑,卫成公派人把他杀死了。元咺逃亡到晋国。

  在城濮的战役中,晋军的中军在沼泽地遇到大风,丢掉了前军左边的大旗。祁瞒犯了军令,司马把他杀了,并通报诸侯,派茅茷代替他。军队回来,六月十六日,渡过黄河,舟之侨擅自先行回国,士会代理车右。秋季,七月某一天,胜利归来,高唱凯歌进入晋国,在太庙报告俘获和杀死敌人的数字,饮酒犒赏,召集诸侯会盟和攻打有二心的国家。杀舟之侨并通报全国,百姓因此而大为顺服。君子认为:“晋文公能够严明刑罚,杀了颠颉、祁瞒、舟之侨三个罪人而百姓顺服。《诗》说:‘施惠于中原国家,安定四方的诸侯’,说的就是没有失去公正的赏赐和刑罚。”

  冬季,僖公和晋文公、齐昭公、宋成公、蔡庄公、郑文公、陈子、莒子、邾子、秦同人在温地会见,商量出兵攻打不顺服的国家。

  卫成公和元咺争讼,甯武子作为卫成公的诉讼人,鍼庄子作为卫成公的代理人,士荣作为卫成公的答辩人。卫成公没有胜诉。作为诸侯领袖的晋国杀了士荣,砍了鍼庄子的脚,认为甯武子忠诚而赦免了他。逮捕卫成公,把他送到京师,关在牢房里。甯武子负责给卫成公送衣食。元咺回到卫国,立公子瑕为国君。

  这次温地的会盟,晋文公召请周襄王前来,并且带领诸侯朝见他,又让周襄王打猎。孔子说:“以臣下而召请君主,是不能作为榜样的。”所以《春秋》记载说“天王狩于河阳”,天下本都是周王朝的地方,而这里却不是周襄王的地方了,而且是为了表明晋国的功德而避讳的说法。

  十月初七日,僖公到周襄王的住处朝觐。

  十一月十二日,诸侯包围许国。

  晋文公有重病,曹共公的侍从侯獳贿赂晋文公的筮史,让他把得病的原因说成是由于灭了曹国。他就对晋文公说:“齐桓公主持会盟而封异姓的国家,现在君王主持会盟而灭同姓的国家。曹国的叔振铎,是文王的儿子;先君唐叔,是武王的儿子。而且会合诸侯而灭掉兄弟之国,这是不符合礼仪的;曹国和卫国一样得到君王的诺言,但是不能一同复国,这是不讲信用的;罪过相同而惩罚不同,这是不符合刑律的。礼仪用来推动道义,信用用来保护礼仪,刑律用来纠正邪恶。丢开了这三项,君王准备怎么办?”晋文公很高兴,恢复了曹共公的君位,曹共公就在许国和诸侯会盟。

  晋文公建立三个步兵师来抵抗狄人,荀林父将领中行,屠击将领右行,先蔑将领左行。