齐国失去霸主地位,骊姬倾晋之后晋国也陷入乱局,而此时南方的楚国在楚成王的治下却国力日盛、蒸蒸日上。中原的小国郑、许、陈、蔡、鲁、卫、曹、宋大都依附于楚,或者在楚国与晋国之间摇摆不定,楚国颇有称霸之势。
晋文公即位以后,晋国局势稳定,经济得以发展,民生得以休息,同时晋文公也在王子带之乱中带兵勤王、安定王室,又积极与秦、齐加强联系,晋国的大国威势逐渐恢复,也有争霸中原之心。在这种情况下,晋国与楚国之间就不得不出现当初重耳在楚国所预言的“晋、楚治兵,遇于中原”之境况了。
自从宋襄公图霸失败,惨败于楚国之手,宋国就只能依附于楚国。但是宋襄公的儿子宋成公与楚人有杀父之仇,而且宋襄公当年曾经对流亡中的晋文公极尽礼遇,因此晋国国力恢复之后,宋成公便决定背叛楚国,转而投靠有故交的晋国。此时晋楚两国正针锋相对,楚国自然不能容忍宋国这样公然的背叛行为,于是便联合了郑、许、陈、蔡等国一同进攻宋国,并包围了宋国的都城,宋成公派出公孙固来向晋国告急求援。
接到救援,晋文公召集群臣商议对策,晋国的大夫先轸说:“报答宋国以前的恩惠,建立晋国如今的威信,奠定今后的霸业,就在此一举了!”狐偃则进一步出谋划策:“楚国最近刚刚与曹国结盟,又与卫国结成姻亲,我们要救援宋国,不必与强大的楚军正面对抗。可以先去攻打曹国和卫国两个小国,楚国必定会放弃围攻宋国而去援救曹国、卫国。”
当初重耳在流亡中经过曹国,曹共公曾经无礼地去偷看他洗澡,重耳一直深以为辱,对曹共公耿耿于怀,如今就顺水推舟地同意了攻打曹国。为了筹备这场战争,晋国将原来的二军扩充为三军,又选定了元帅,晋文公在被庐大阅三军之后带领大军出发了。
经过一番波折,还在路上攻克了卫国,晋军终于围困住了曹国的国都,但是曹国国都城坚池深,一时难以攻克,晋军士兵死伤无数。曹国人为了打击晋军士气,便将晋军士兵的尸体挂在城墙上示众,看到攻城的同袍死后都不得安宁,晋军之中果然人心惶惶,晋文公深以为患。有人建议说:“他们这样对待我们的士兵,我们驻扎在他们的祖坟旁边祸害他们的祖坟。”
于是晋文公就将大军迁到了曹国人祖坟附近,曹国人见了果然人人惊惧,民心不稳,只好将战死的晋军尸体用棺木收殓了送还晋军。晋文公命令军队趁着曹国人心大乱之际进攻,果然攻克了曹国的都城。
晋军虽然攻