文公即位时,宋襄公已经死了两年。宋人又与楚国“提携”起来,其他郑、鲁、卫、曹、许等国,更不用说了。当初文公漂流过宋时,仁慈的襄公曾送过他二十乘马。文公即位后,对宋国未免有情。宋人又眼见他归国两年间,内结民心,消弭反侧;外联强秦,给王室戡定叛乱,觉得他大可倚靠,便背楚从晋。楚率陈、蔡、郑、许的兵来讨,宋人向晋求救。文公和一班患难相从的文武老臣筹商了以后,便把晋国旧有的二军扩充为三军,练兵选将,预备“报施救患,取威定霸”。他先向附楚的曹、卫进攻,占据了他们的都城;把他们的田分给宋国;一面叫宋人赂取齐、秦的救援。虽是著名“刚而无礼”的楚帅子玉,也知道文公是不好惹的,先派人向晋军说和,情愿退出宋境,只要晋军同时也退出曹、卫。文公却一面私许恢复曹、卫,让他们宣告与楚国绝交;一面把楚国的来使拘留,这一来把子玉的怒火点着了。于是前六三二年,即齐桓公死后十一年,楚、陈、蔡的联军与晋、宋、齐、秦的联军大战于城濮卫地。就在这一战中,楚人北指的兵锋初次被挫,文公成就了凌驾齐桓的威名,晋国肇始它和楚国八十多年乍断乍续的争斗。
这八十多年的国际政治史表面虽很混乱,却有它井然的条理,是一种格局的循环。起先晋楚两强,来一场大战;甲胜,则若干以前附乙的小国自动或被动地转而附甲,乙不肯干休,和它们算账;从了乙,甲又不肯干休,又和它们算账,这种账算来算去,越算越不清,终于两强作直接的总算账,又来一场大战。这可以叫做“晋、楚争霸的公式”。晋、楚争取小国的归附就是争取军事的和经济的势力范围。因为被控制的小国对于所归附的霸国大抵有两种义务:(一)是当它需要时,出定额的兵车助它征伐。此事史无明文,但我们从以下二事可以类推:(1)齐国对鲁国某次所提出的盟约道:“齐师出境而不以甲车三百乘从我者,有如此盟!”(2)其后吴国称霸,鲁对它供应军赋车六百乘,邾三百乘。(二)是以纳贡或纳币的形式对霸国作经济上的供应贡是定期的进献,币是朝会庆吊的贽礼。此事史亦无明文,但我们从以下三事可以推知:(1)楚人灭黄的藉口是它“不归楚贡”。(2)前五四八年晋执政赵文子令减轻诸侯的币,而加重待诸侯的礼;他就预料兵祸可以从此稍息。(3)前五三○年郑往晋吊丧,带去作贽礼的币用一百辆车输运,一千人押送。后来使人不得觐见的机会,那一千人的旅费就把带去的币用光!当周室全盛时,诸侯对于天王所尽的义务也不过如上说的两事。可见霸主即是有实无名的小天王,而同时正式的天王却变成有名无实了。