非常道历来君主不会因为一个国家曾经对自己有恩而放弃战争中的主动权,更不会在战场上让自己的士兵一而再,再而三地退后。当楚国将领帅兵攻打晋军时,晋文公却下令让自己的士兵退后九十里,他的行为真是不同凡响。
晋文公曾经在楚国避过难,所以,他自始至终不想与楚国发生任何战争和瓜葛,可是无奈楚国连连挑起纠纷,攻打晋国盟邦,使文公十分为难,却又有些不知所措。
在晋国击败曹、卫二国后,楚王派来了使者,对晋文公说:“楚国与曹国、卫国,正如晋国与宋国,是友好国家。若晋国能恢复曹、卫两国,楚国就从宋国撤军。”
大将狐偃道:“你们还没有打下宋国,倒让我们恢复两个灭亡了的国家,有这种事吗?”
晋国将领都不赞成与楚国讲和。于是,文公狠了狠心,下令拘留了楚国使者,并派人给逃跑了的曹、卫两国新君送信,让他们立刻宣布和楚国断交。
楚国元帅成得臣知道晋国拘留了他的使者,又接连收到曹卫两国的绝交书,气愤之余,不顾楚成王的命令,约集陈、蔡、郑、许四国人马,率领大军离开宋国都城,直奔晋军营前挑战。
晋国大将先轸等人,看到楚军漫山遍野冲杀过来,立即命令军队迎战。
狐偃见势急忙劝阻说:“当年,主公在楚国避难时说过,若是两国一旦打起仗来,晋军要退避三舍,现在楚军初到,就要迎战,岂不失掉主公的信用?”
不少将士反对这种主张,他们认为:见敌人而逃退,是亡国的主张。
狐偃说:“退避三舍,是我君不愿和楚国作战,表示友好的意思。如果晋军一退再退,楚兵一再追赶,说明楚国没有和谈的诚意,这样他们就输理了,人心向我,打起仗来还能不取胜吗?”
文公认为狐偃的话说得有理,便立即命晋军从驻地先退一舍(一舍为三十里),以回避楚军。楚军继续向晋军进迫,文公又下令退了一舍。没多久,楚军又追上来了,文公又下令再退避一舍,先后三次,晋军总共退了九十里,到了城濮(卫地,今河南省濮阳县南),才驻扎下来。恰在这时,秦国、齐国援宋的军队也先后到达,与晋军会合一处,准备共战楚军。
这时,成得臣眼见晋军连退三舍,以为晋国将帅士卒都是贪生怕死之辈,不敢迎战,便越发趾高气扬起来。
楚国副将斗勃对成得臣说:“晋国的国君不愿跟楚国打仗,一退再退。咱们应该及时退兵,一来保住了面子,二来也好向楚君交账。如果执意与晋军交战,因小失大,可就不好说了。”成得臣正得意得很,哪里肯听别人的劝告,他驱兵直入,一下追到晋军门外。
而这时战场形势是:一边是晋、齐、秦、宋四国军队,一边是楚、陈、蔡、郑、许五国军队,双方齐集十多万兵马,准备决一胜负。
晋文公与各国盟军统领,经过了周密的部署后,便同赵衰等大臣到有莘山上观战。一开始,楚军元帅成得臣骄傲自大,不把晋军放在眼里,见晋军元帅先轸诈败,就率领大军,直扑晋军,先轸且走且战,到了伏兵的地方,晋军、齐军、秦军、宋军一齐杀出,把楚军先后截成几节,切断了他们的归路,大败楚军。
晋军虽然是大获全胜,但是晋文公仍感念楚王的恩惠,吩咐追兵不要深入楚境,从免伤尽两国和气。
晋国打败了楚国,周襄王非常高兴,立刻派出天使,去慰劳晋军。他赐给晋文公以方伯(诸侯首领)的服饰、刀、箭等许多珍贵礼品。
从此,晋文公就成为春秋时代的“五霸”之一,他还召开了有十来个诸侯参加的大会,共立中原盟约,发誓辅佐周天子,保卫中原各国的安全。