城濮之战
周襄王二十一年(公元前632年),在晋楚争霸战争中,晋军在城濮(今山东鄄城西南,一说在今河南陈留附近)击败楚军战略决战。
楚自十五年(前638年)在泓水之战击败宋军后,积极谋划北进。十九年冬,楚成王发兵围攻宋邑缗,继而配合鲁军攻占齐谷邑。次年,楚成王.亲率以令尹子玉为主将的楚军及郑、蔡、陈、许等国军队围攻宋都商五(今河南商丘南),大有入主中原之势。宋成公遣大夫公孙固赴晋求援。晋文公听从其属下建议,决定以此为契机,发兵击楚,求霸中原。鉴于楚联军实力强大,为避免与其正面交锋,晋文公采纳大夫狐偃之计,决定进攻楚之与国曹(今山东定陶西北)、卫(今河南北部一带),迫使楚军北上援救,以解商丘之围。
二十一年春,晋文公率军东进,向卫借道攻曹,遭拒,遂转而南下,自卫西部棘津(今河南淇县南)南渡黄河,侵入曹国,继而挥师北上反攻卫国,取五鹿邑(今河南清丰西北)。三月,曹都陶丘被晋军攻占。晋军连克曹、卫,原欲引诱楚联军北上以解商丘之围,然楚成王不为所动,反而加紧进攻商丘城。宋成公再度遣使赴晋军告急,使晋文公陷入进退两难之境。若置宋于不顾,则晋必会在诸侯面前威信扫地;若南下救宋,又恐难敌强大的楚联军。鉴于此,晋文公采纳中军主帅先轸的建议,指使宋国以财物贿赂齐、秦两强,请两国出面劝楚撤兵。同时,晋分曹、卫之地予宋,以坚定其抗楚的决心,并以此激怒楚国。果然,楚拒绝齐、秦之调停,致使两国怒而发兵,形成晋、齐、秦三强联兵抗楚的局面。楚成王见中原局势发生逆转,深恐秦军乘机南下,攻其后方,遂率部分军队自商丘回撤至楚北部的申(今河南南阳北)。同时,成王令楚大夫申叔撤离齐谷邑;令子玉释商丘之围回撤,以避免与三强之师决战。但刚愎自用的子玉不甘心就此放弃指日可得的商丘城,遂向晋提出晋使曹、卫复国,楚解商丘之围的建议。已掌握战争主动权的晋文公为诱使楚军北上决战,采纳先轸之计,私下应许曹、卫复国,使两国叛楚从晋,并扣留楚使宛春,以激怒子玉。子玉中计,不顾楚成王的告诫,忿然率围商丘之师北上,寻求与晋军决战。为争取政治及军事上的主动,晋文公令晋军向卫地后撤90里,既履行其流亡在楚的“避君三舍”的许诺,又避开楚军锋芒,向齐、秦两军靠拢。子玉求战心切,率军穷追不舍,致楚军陷入孤军深入的不利境地。