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