助周襄王撥亂反正,晉文公名利雙收,晉國的發展更加迅速。到了晉文公四年,晉文公實現了擴軍,將原先的兩軍擴充到三軍,上、中、下三軍各有統帥和佐將,共六人,後來,這六個職位慢慢發展成了權勢滔天的晉國六卿,晉國君權逐漸削弱,大權都掌握在了六卿的手中。
三軍中,中軍統帥權力最高,即掌管軍事大權,又相當於是行政百官之首,一人之下,萬人之上。晉文公有意讓“逃亡班子”骨乾成員趙衰任中軍統帥,趙衰這人是真的實誠或者說無私,他認為郤穀博學多才,能力強於自己,推薦郤穀做了中軍統帥。剩下的五個職位,趙衰都沒有做,而是建議晉文公任用了一批賢能的人。郤臻為中軍佐將,狐偃為上軍統帥,狐毛為上軍佐將,欒枝為下軍統帥,先軫為下軍佐將,後來郤穀病逝,先軫接替他成為中軍統帥。
泓水一戰過後,宋國元氣大傷,宋襄公也於次年逝世。楚國向中原迅速拓展,毫無阻力,直到晉楚交戰。晉文公四年,楚成王派將星子玉,率領楚、陳、蔡、鄭、許五國聯軍伐宋。宋襄公之子宋成公派公孫固前往晉國求援,公孫固很聰明,沒有直接找晉文公,而是找了老交情狐偃,狐偃身為晉文公的舅舅,同時也是朝中重臣,晉文公肯定會聽狐偃的話。
狐偃彙報給晉文公,建議救援,中軍將先軫也附議。晉文公本來就是個恩怨分明的人,當年他流亡經過宋國,宋襄公剛戰敗還以禮相待,如今宋國有難,又是個出頭的好機會,自然要把握住。晉文公雖然有意出兵,不過當年楚國也是熱情款待了流亡的他,他總覺得直接打楚國有點不好意思。狐偃想到了一個絕妙的方法,建議晉文公:“曹、衛都是楚國的同盟,我們去打楚國盟友,楚國必定前來救援,宋國就可得救。”這個方法絕妙的地方在於當年曹國國君偷看過晉文公洗澡,有仇必報的晉文公必定會同意這個一石二鳥的建議。