文公救宋
晋文公四年,楚成王率领诸侯围攻宋国,宋国派遣使者公孙固到晋国告急、求援。先轸对晋文公说:“大王,报答当初宋国国君赠马的恩惠,确立晋国的霸业,就在现在了。”狐偃又献计说:“楚国新近和曹国结盟,又刚刚和卫国通婚。如果我军讨伐曹国、卫国,楚国一定会前往救援,这样宋国之围便可以解除了。”文公听从了他的建议,立刻组织了三支精锐军队,并分别任命了各军的统帅与副将,还有自己车马的驾御者和护卫。随后,他便命令三军去讨伐曹国、卫国。这年冬天,晋军首先攻下了崤山以东地区,把原邑封给了赵衰。
第二年春天,晋文公打算继续讨伐曹国,便向卫国借道,卫国没有答应,晋军便只好渡过黄河,从河南出击去袭击曹国。由于卫国当初没有借道给晋国,晋国一直怀恨在心,随后又带兵去攻打卫国。正月,晋军攻占卫国的五鹿。二月,晋文公和齐侯在敛盂会盟,卫侯认识到自己以前的过失,便请求与晋国结盟,遭到了拒绝。于是卫侯又打算与楚国结盟,但是国人不答应,并把他驱逐出了国。此后,楚军派兵去援救卫国,但是没有成功。接着晋军又一次进攻曹国,在三月占领了都城,并俘虏了曹国国君,晋文公亲自数落他当初的罪过。此时宋国形势危急,便再次派使者向晋国求援。晋文公想要营救宋国,可是这样便要与楚军交锋。因为当初在流亡的时候楚国曾经对自己有恩,所以重耳不希望与楚军交战。但是在自己流亡的落破时期,宋国也曾有恩于己,重耳又不能放下宋国不管。这让他左右为难。这时候大臣先轸献计说:“大王,您现在俘虏了曹国国君,如果把曹、卫两国的土地分给宋国,楚国急于解救这两个国家,一定会解除对宋国的包围。”重耳采纳了他的意见,楚成王果然引兵回国。
退避三舍
楚成王回国以后,将军子玉对他说:“大王您对待晋文公可以说是仁至义尽,如今,他明知道我国急于救助曹国、卫国,却故意讨伐这两个国家,这分明是没把您放在眼里。”楚成王知道重耳的为人和处境,便十分平静地对他说:“重耳流亡在外十九年,饱尝世间的苦难,他能够回国即位,得到国人的衷心拥护,可以说是上天的保佑,外人是不可以抵挡的。”子玉对重耳深表不满,并没有听从国君的变相的劝告,依然话语强硬地请求说:“我率兵进击晋军,不敢说一定获胜,但是愿意用我军的浴血奋战来平息国内的种种谗言。”楚成王听了之后心中十分恼怒,但是并没有阻止子玉,只是拨给他数量很少的军队,让他去和晋军作战,想要惩罚他一番。
子玉率军出征,并派使者宛春告诉晋文公说:“请您恢复卫侯的君位,保全曹国,楚国愿意以放弃对宋国的围攻为条件。”狐偃大怒,对文公说:“子玉这个家伙太无礼了!君主要取一分,他这个做臣子的却要取两分,真是贪得无厌,大王您千万不要答应他。”先轸则比较冷静,他说:“安定百姓是合乎礼仪的行动。楚国一句话就可以安定三个国家,狐偃一句话却要使他们全部灭亡,这是我们的失礼。我国不答应楚国的要求,就等于是放弃了宋国。我们不如私下里恢复曹国、卫国国君的君位,以此来引诱他们归附我国;然后扣留楚国使者,以次来激怒子玉。等晋楚两军交战以后,我们再想别的办法。”晋文公觉得先轸的话有道理,便决定按他的计策行事。结果曹国、卫国果然和楚国断绝了关系,归附了晋国。楚将子玉知道后非常愤怒,率军攻击晋军。文公命令晋军全线后退。军中的将士们对于退军不解,文公便对他们解释说:“以前,我流亡到楚国,楚王对我十分友好,我便对他许下了如果日后我们两国交战的话,我军退避三舍以报恩的诺言。现在,我身为一国之君,难道可以违背当初的诺言吗?”晋军将士对文公的仁义、守信深表敬佩,更加归心于他。楚军看到文公谨守当年的诺言,都对文公非常敬重,有的将军便请求撤退,而子玉却坚决不肯。