二十一年一月,晋文公率军至晋、卫边境,欲借卫国之道以攻曹,卫不许。晋军秘密回撤,绕道从南河棘津(今河南卫辉境)渡河(黄河)。为减少伤亡,有意避开卫都楚丘(今滑县东),直取卫地五鹿(今清丰西北)。二月,向南进军敛盂(今濮阳东),与齐昭公会盟,对卫构成强大压力。卫“国人”惧晋军势大,驱赶卫成公,晋军乘虚攻入楚丘,占领全部卫地。楚军救卫不及,继续围困商丘。晋文公挥师南下,于三月攻破曹都陶丘(今山东定陶西北),俘曹共公。
晋文公虽已解除救宋的后顾之忧,而楚成王也识破晋军企图,不为曹、卫之失而动,愈加紧围攻宋都,以逼迫晋军继续南下,孤军与楚联军决战。晋文公自度处于两难:兵临宋境而不救宋,无异放弃求霸;未得齐、秦协力而深化,必是凶多吉少。
探索网配图
为变被动为主动,采纳中军元帅先轸之谋,让宋国贿赂齐、秦,使其劝楚撤兵;同时晋执曹君,而分曹、卫部分地予宋。意在拉齐、秦下水,止其观望态度;赶宋国上架,绝其降楚之念;给楚国火上浇油,迫其非战不可。果然,楚见未攻下宋而宋反得曹、卫之地,乃拒绝齐、秦调停。齐、秦既得利于宋而未成调解之功,愈加深与楚的矛盾,随即出兵助晋,构成晋、齐、秦、宋联合对楚的局面。
楚成王深知楚军战线漫长、后方空虚、兵力分散的弱点,及见晋、楚双方力量比照改变,战略态势已对楚不利,即令戍守穀邑的申公叔侯撤回宋地,令子玉放弃围宋,避免与晋军决战,本人则率部分军退回申邑,以防秦军袭其后方。子玉不以国为重,刚愎自用,不听成王知难而退的告诫,坚持不撤宋围。成王虽怒子玉抗命,又存侥幸取胜之心,未能坚决命令退军,于犹疑之中给子玉补充少量兵力。