夏季,四月初一日,晋文公、宋成公、齐国的国归父、崔夭、秦国的小子慭(yìn)驻在城催。楚军背靠着险要的地方扎营,晋文公担心这件事。听到士兵念诵说:休耕田里的绿草繁茂,丢开旧草而对新的加以犁锄。晋文公很疑惑。子犯说:出战吧!战而得胜,一定得到诸侯;如果不胜,我国外有大河,内有高山,一定没有什么害处。晋文公说:对楚国的恩惠怎么办?
栾枝说:汉水以北的姬姓诸国,楚国都把它们吞并完了。想着小恩惠,而忘记大耻大辱,不如出战。晋文公梦中和楚王搏斗,楚王伏在自己身上咀嚼自己的脑袋,因而害怕。子犯说:吉利。我得到上天,楚国伏罪,而且我们已经安抚他们了。
子玉派遣鬬(dòu)勃向晋国挑战,说:请和君王的斗士作一次角力游戏,君王靠在车横板上观看,得臣可以陪同君王一起观看了。晋文公派栾枝回答说:我们国君知道您的意思了。楚君的恩惠,没有敢忘记,所以待在这里。我们以为大夫已经退兵了,臣下难道敢抵挡国君吗?既然大夫不肯退兵,那就烦大夫对贵部将士们说:准备好你们的战车,忠于你们的国事,明天早晨将再见面。晋国战车七百辆,装备齐全。晋文公登上有莘的废城观看军容,说:年少的和年长的,排列有序,合于礼,可以使用了。就命令砍伐山上的树木,以增加武器。
初二日,晋军在莘北摆开阵势,胥臣让下军分别抵挡陈、蔡军队。子玉用若敖的一百八十乘率领中军,说:今天一定灭掉晋国了。子西率领左军,子上率领右军。胥臣把马蒙上老虎皮,先攻陈、蔡两军。陈、蔡两军奔逃,楚军的右翼部队溃散。狐毛派出前军两队击退楚军的溃兵。栾枝让车子拖着木柴假装逃走,楚军追击,原轸、郤溱率领中军的公族拦腰袭击。狐毛、狐偃率领上军夹击子西,楚国的左翼部队溃散。楚军大败。子玉及时下令收兵,得以不败。
晋军修整三天,吃楚军留下的粮食,到初六日起程回国。二十七日,到达衡雍,为天子在践土建造了一座王宫。这一战役之前的三个月,郑文公派军队到楚国助战,因为楚军已经失败而害怕了,派遣子人九和晋国讲和。晋国的栾枝进入郑国和郑文公订立盟约。
五月初九日,晋文公和郑文公在衡雍结盟。初十日,把楚国的战俘献给周襄王;驷马披甲的战车一百辆,步兵一千人。郑文公作为相礼,用的是周平王时的礼仪。十二日,周襄王设享礼用甜酒招待晋文公,又允许他向自己回敬酒。周襄王命令尹氏和王子虎、内史叔兴父用策书任命晋文公为诸侯的领袖,赐给他大辂车、戎辂车以及相应的服装仪仗,红色的弓一把、红色的箭一百枝,黑色的弓十把和箭一千枝,黑黍加香草酿造的酒一卣(yǒu),勇士三百人,说:天子对叔父说,恭敬地服从天子的命令,以安抚四方诸侯,惩治王朝的邪恶。晋文公辞谢三次,然后接受命令,说:重耳谨再拜叩头,接受和宣扬天子的重大赏赐和命令。接受了策书就离开成周。从进入成周到离开,三次朝见周王。