晋文公即位后,致力于整顿内政,发展生产,使得晋国逐渐繁荣。他渴望成为中原的霸主,与齐桓公一样。然而,在周朝天子周襄王派来的讨救兵到达之前,晋国已遭受狄国的侵袭。狄国太叔带联合了一些大臣,向邻国狄国求助,成功夺得了周襄王的王位。周襄王逃亡到郑国,请求各国诸侯发兵支援。虽然许多诸侯国派出了使者慰问天子,但没有人愿意出兵援助狄国。有个大臣建议道:“如今中原诸侯中,只有晋国和秦国拥有足够的力量来抵御狄人。现在他们已经侵入了曹国和卫国,俘虏了两国国君。如果晋文公不尽快出兵,宋国最终还是难以保住。”晋文公听取了他的建议,立刻发兵进攻狄国。
在公元前632年,晋军成功地侵占了曹国和卫国,俘虏了两国国君。消息传回楚国,楚成王原本不想与晋交战,但听到晋军出兵,立刻派人命令成得臣退兵。然而,成得臣认为宋国迟早可以拿下来,因此坚持继续进攻。晋文公率领晋军继续进攻,最终在城濮大败楚军,迫使楚成王不得不与晋议和。此次胜利使得晋文公声名大噪,成为了中原诸侯心中的霸主。晋文公的扩张野心也因此更加坚定,他决心在接下来的战争中,继续打败那些挑战他的国家,以确保中原的和平与稳定。
他派遣将领前往楚成王身边,表达了他勇敢面对战争的决心。“我虽然不敢确保我们一定能够取得胜利,但是我会拼尽全力。”楚成王并不满意,只派出了少量兵力由成得臣统一指挥。成得臣先派使者通知晋军,让他们释放卫、曹两国国君。晋文公密地通知这两国国君,要求他们先与楚国断交。曹、卫两国国君也按照晋文公的意思办理。然而,成得臣原本想救援这两个国家,不想他们反而与楚国绝交。这一举动让成得臣十分愤怒。“这分明是重耳这个老贼逼迫他们这么做的!”他立即下令,催动全军赶到晋军驻扎的地方。
当楚军进攻时,晋文公立刻命令军队撤退。一些晋军将士不满,认为他们的统帅是国君,对方将领只是臣子,不应该听从臣子的命令。狐偃耐心地解释道:“打仗首先要讲求道理,如果道理通,气节就自然振作。当初楚王曾经帮助过晋文公,晋文公在楚王面前答应过:如果两国交战,晋国愿意退避三舍。现在晋文公撤退,就是为了实现这个诺言。如果我们失信于楚国,让他们得逞,那么我们就算再跟他们交手也迟了。我们撤退九十里,到达城濮(今山东鄄城西南),才停下来,布置好了阵势。楚军有些将军看到晋军后撤,便想停止进攻。然而成得臣并不答应,一直盯着晋军,直到晋军停下来为止。”
成得臣向晋文公发出傲慢的战书,但晋文公并不惧怕,他派人回应说:“我们曾经受到您的恩惠,所以退让到这里。现在既然您不肯谅解,那我们只能在战场上比个高低了。”于是,晋国的军队和楚国的军队开始了一场激烈的战斗。
晋国的将军挥舞着两面大旗,指挥军队向后撤退。他们还在战车后面拖着伐下的树枝,战车后退时,地下扬起一阵阵尘土,显得十分慌乱。
然而,成得臣并不在意这些,他一直坚信自己的实力,认为晋国人无法与自己相提并论。他毫不在意的直追上去,正中了晋军的埋伏。晋军的中军精锐,猛冲过来,将成得臣的军队拦腰切断。
原来假装败退的晋军又回过头来,前后夹击,将楚军*得七零八落。晋文公得知情况后,立即下令,要求将士们只管将楚军赶走,不再追击。
成得臣带着败兵残将回到半路上,深知无法向楚成王交代,于是他在心惊意乱之中自*了。晋军占领了楚国的营地,他们把楚军遗弃下来的粮食吃了三天,才凯旋回国。
晋国打败楚国的消息传到周都洛邑,周襄王和大臣都认为晋文公立下了汗马功劳。周襄王还亲自到践土慰劳晋军,晋文公趁机在践土为天子造了一座新宫,还邀请各国诸侯开会,订立盟约。
最终,晋文公成为了中原的霸主,各国诸侯都向他臣服,周襄王也为之感到骄傲。