周襄王十四年(前638年),楚国在泓之战中击败宋国,欲与楚成王争夺天下霸权的宋襄公身受重伤,拖了一年多便不治而死。此时,齐国在齐桓公死后国力衰落,秦国则偏处西隅,还在发展壮大当中,均无力对抗楚国。而郑/许/陈/蔡/鲁/卫/曹等中小诸侯国慑于楚国的军威,更是纷纷向其臣服效忠。楚国国势大张,楚成王一时间似乎已触碰到了诸侯霸主的宝座。
城濮之战
然而周襄王十六年(前636年),晋公子重耳-楚成王生命中的克星-在流亡十九年之后终于回国即位,史称晋文公。晋文公上台后,对内拔擢贤能,整顿国政,发展经济,壮大军队,对外联秦合齐,尊王攘楚,晋国在短短几年间就一跃成为楚国争霸的最强劲对手。晋楚之战一触即发,势所难免。
周襄王十九年(前633年),楚国会同陈/蔡/郑/许五国军队攻打宋国,宋襄公之子宋成公向晋国求救。晋国中军元帅先轸力劝晋文公出兵救宋,说:"取威定霸,在此一战!"晋文公采纳了他的建议,决定出兵。随后他扩编三军,任命将领,亲率大军出征,拉开了晋楚大战的序幕。
晋军倾巢而出,但并不是直接援助宋国,而是去讨伐楚国的同盟国曹国和卫国。晋国君臣的计划是,引诱楚军北上救援曹/卫,这样既可解宋国之危,又能以逸待劳,占据主动。然而楚军并不上钩,继续猛攻宋国。这时,以谋略见称的优秀军事将领先轸再次向晋文公献计:"让宋国用重金贿赂齐/秦二国,请齐/秦劝楚退兵。眼看就要打下宋国的楚国必然不听他们的劝解,如此一来齐/秦必怨怒楚国,而坚定地站在我们一边。同时我们可以承诺将打下的曹/卫部分土地分给宋人,以坚定宋国抗楚的决心。"
晋文公依计行事。果然,楚成王拒绝了齐/秦两国的调停,齐/秦恼怒楚国不买他们的面子,随即与晋国结成联盟。同时,晋军也已攻破了曹/卫两国。楚成王见中原形势已变,就命令攻宋总指挥楚令尹子玉撤军回国,日后再寻战机。但子玉一向骄横,不听楚成王劝告,坚持要与晋国交战,并要求楚成王派军增援。楚成王犹豫再三,派了少数援军给他,心想如果战胜晋国最好不过,如果战败,也可借机除掉这个不听话的权臣。
当然,子玉虽然狂傲,但并非无谋之辈。为求胜利,他派使者宛春向晋文公提出了一个"晋许曹/卫复国,楚解宋国之围"的休战条件。先轸认为,子玉的这个计划是一石二鸟之策。如果晋国答应他的要求,则曹/卫/宋三国都会感激楚国;如果不答应他的要求,那么三国将会怨恨晋国。同时,晋国是以救宋的借口出的兵,从而占了曹/卫,如果不答应子玉的提议而导致宋国被灭,那就于理不合,国际舆论将不利于晋国。
于是,晋文公接受先轸的建议,私下允许曹/卫复国,曹/卫两国则答应与楚断交。同时,晋国扣下楚使宛春以激怒子玉。子玉不能忍受这种挑衅,立即挥军北上,来攻打驻扎在曹都陶丘的晋军。
晋文公见楚军逼近,下令全军退避三舍(即九十里)。众人不解,问他为何退兵。晋文公解释说:"当年我逃难经过楚国,楚成王曾经好酒好肉招待过我。酒席上楚成王问我将来如何报答于他,我说:‘如果今后我能回晋国执政,而日后晋楚又在中原交兵,我当避君三舍。’现在就是我兑现诺言的时候了。"
于是,晋军退兵九十里,在城濮(今山东范县南)扎下营寨。这一举动一方面塑造了晋文公有恩必报/信守诺言的高尚形象,另一方面又使晋军占据有利地形,达到使敌骄横,诱敌深入的效果。子玉以为晋军怯懦,果然率兵急进,追至城濮。双方于周襄王二十年(前632年)四月在此展开了历史上有名的城濮之战。
当时,晋国配置为上中下三军,楚国则是左中右三军。子玉统率主力中军,子西统率左军,子上统率右军。楚的仆从国郑/许军附属楚左军,陈/蔡军附属楚右军。
决战开始,子玉放下狂言:"过了今天,晋国将不复存在!"然而晋军早已制定了破敌制胜的策略。其秘诀就是"先弱后强,示利诱敌,各个击破"十二个字。首先,晋军统帅先轸下令全力击溃最弱的楚右军,晋下军的副将胥臣率领所部人马,用虎皮蒙在驾车的马匹身上,冲击楚右翼的陈/蔡军,陈/蔡军惊骇逃散,楚右军溃败;紧接着,令晋上军佯退,于阵后拖曳树枝奔驰以扬尘,制造败退的假象,引诱楚左军进击,其后回军与中军实施合击,又将楚左军击溃。子玉见势不妙,率领中军退出战斗,总算没有落得全军覆没的下场。楚成王得到败报,立即派人赶去责难子玉,子玉被迫自杀。从此,楚国北进中原受挫,只能退回南方休养生息,直到楚成王的孙子楚庄王时,才再次大举北上争霸。
在城濮之战中,晋国以五万多兵力击败楚/陈/蔡/郑/许五国联军十余万众,是一次以少胜多的经典战例。战后,晋文公大会诸侯于践土,参加会盟的有齐/鲁/宋/蔡/郑/卫/莒等国,周襄王也命令王室大臣与会,褒奖晋文公。晋文公得到周王室的承认,正式登上诸侯霸主的宝座。