周襄王二十年(公元前632年)春,晋文公打算攻伐曹国,向卫国借路,卫国不答应。晋军回师,从南河渡过黄河,袭击曹国,攻打卫国。正月,晋军占领了卫国的五鹿;二月,晋中军元帅郤谷死,先轸继任中军之帅,胥臣补先轸的空缺辅佐下军。晋侯与齐侯在卫国的敛盂结盟,卫成公向晋请求订立和约,晋国不答应。于是卫成公想投靠楚国,卫国的贵族不同意,就赶走他们的国君,以此来向晋国讨好。卫成公只好离开国都居住在襄牛。鲁国大夫公子买率鲁军助卫防守,楚军救援卫国,不能取胜。鲁僖公害怕晋国伐鲁,就杀了公子买来讨好晋国,对楚国人却说,公子买没有完成戍守的任务,所以杀了他。
晋军袭卫攻曹,原意解宋围。但楚见此二国已失,并不前来相救,反率陈国、蔡国的军队加紧围攻宋国。于是宋国派大夫门尹般向晋君告急求救。晋文公十分为难,因为舍弃不管,宋国就会与晋绝交;请楚国退兵,楚国肯定不会答应;如果与楚国作战,齐国和秦国不会支持。进退两难之际,中军元帅先轸献上一计:让宋国用财物去贿赂齐、秦两国,请他们出面求楚国退兵,晋国扣留曹共公,然后分曹国、卫国的土地给宋国。楚国同曹、卫两国友好,其国土被分,必定不会答应齐、秦的调解,而齐、秦二国接受了宋国的贿赂、又恼恨楚国不给面子,就必然出兵伐楚。晋文公同意了先轸的离间计,实施“喜贿怒顽”的外交策略。果然,齐、秦与晋联合了起来。
楚铜盘
于是,子玉派大夫宛春到晋军中谈判,条件是:恢复卫侯的君位,同时退还曹国的土地,楚军解除对宋国的包围。狐偃认为子玉太无礼了,晋君(文公)只得到释宋之围一项好处,而楚臣(子玉)却得到恢复曹、卫两项好处,不能失掉这个战机。先轸不同意,他认为楚国一句话就使曹、卫复国而宋解围,三个国家都安全,晋国如果不同意,这三国就均被灭亡,这就是晋国无礼。不如暗中答应恢复曹、卫两国,使他们叛离楚国;再用扣留楚军使者宛春的办法来激怒楚国,等打完仗再考虑曹、卫的问题。晋文公很高兴,就采纳了先轸的意见。曹、卫两国果然派人到子玉营中同楚断交。