晋文公在外流亡十九年,终于回到了晋国。他修明政治,重用贤人,发展生产,晋国人大都依附晋文公。
东周的周襄王的弟弟带作乱,周襄王出逃到郑国,周襄王派人向晋文公求救。秦国的秦穆公派遣军队驻扎在黄河岸边,打算送周襄王回东周都城洛邑。
重臣赵衰劝说晋文公说:“要想成为天下的霸主,没有比护送周王、尊重周天子更为重要的。周王室与我们晋国是同是姬姓,如果晋国不先护送周王回到洛邑,让秦国军队护送周天子回到京师,那么,晋国还有什么资格对诸侯发号施令。如今之计,尊崇周王,才能够获得称霸天下的资本。
晋文公听从了赵衰的建议,发兵捕杀了叛乱的公子带,护送周襄王回到洛邑复位。周襄王很感激晋国,将河内的阳樊地区赏赐给晋国。
当时的四大诸侯国之中,秦国偏在西部,一向被中原各个诸侯国视为戎族,难以号令中原。齐国在齐桓公去世之后,国势开始衰落,已经没有了成为中原霸主的势头。晋国不仅是大国,华夏族的正统代表,还是当时中原华夏各族唯一有实力抵御南方大国楚国扩张的国家。
楚国国君虽然出身于中原,但是,自从楚国国君的祖先迁移南方,与南方各族融合之后,中原各国一直将楚国看做是蛮夷另类。当时的楚国,国势正在上升,晋国只有压倒楚国的势头,才能成为中原各国的霸主。
晋文公在位的第四年,楚成王发兵进攻宋国,宋国向晋国求救。晋文公的大臣先轸说:“报答宋襄公送马的恩情,建立起霸业,现在是好机会。”
谋士狐偃建议到:“楚国刚刚与曹国结盟,与卫国通婚。如果我们进攻曹国,卫国,楚国一定会从宋国撤军,来救援曹国、卫国。”
晋文公筹建三军,这是当时各国中最大规模的建制军队,晋文公分别任命郤觳、狐偃、栾枝为中军、上军、下军主将,三军出发,征讨卫国、曹国。楚成王果然从宋国撤兵。
楚国大将子玉对楚成王说:“大王对待晋侯重耳十分优待,他竟然恩将仇报。他明明知道大王急于救助卫国、曹国,故意进攻卫国、曹国,这是对大王的羞辱与轻视。”
楚成王说到:“重耳流亡在外十九年,过了很多穷苦日子,尝尽了人间的艰辛,他最终能够回到晋国,能够动员晋国的民众,他是上天所保佑的,不可以抵挡的。”
子玉说到:“我愿意与晋国一战。”楚成王给子玉少量军队。子玉派使者到晋国说:“请恢复卫国,保全曹国,作为交换,楚国将从宋国撤军。”
晋文公私下允许卫国、曹国复国,卫国、曹国很感激晋国,与晋国结盟。晋文公扣押子玉的使者,故意使子玉发怒。子玉果然上当,发兵攻击晋军。
晋文公命令晋军后撤,晋国官吏询问晋文公:“国君为什么后撤?”晋文公回答道:“当年我曾经得到楚成王的厚待,楚成王曾经问我,将来真的做了晋国国君,打算怎样报答楚国?我回答道,假如有一天,楚国与晋国发生战争,我将退避三舍(后退九十里),说过的话,必须兑现。”
晋军连续后撤,楚军很看不起晋军,全力追击。晋军撤到城濮一带,楚军紧追不舍,事先埋伏在城濮一带的晋军以逸待劳,突然对楚军发动攻击,楚军猝不及防,大败而退。
晋文公命人在践土修建王宫,并将俘获的楚军兵车、战俘送给周天子作为礼物,天子派人给晋文公送来贵重的礼物,诸侯国赶到践土,祝贺晋文公。
晋军放火焚烧楚军留下的兵营,大火数日不灭,晋文公叹息不悦,众人问晋文公:“国君为什么在大胜之后还闷闷不乐呢?”
晋文公说:“楚国大将子玉仍然健在,怎么高兴得起来呢?”