不出意外,晉文公答應出兵。由於衛國夾在晉和曹之間,晉文公開始想直接打曹國報仇,便向衛國借路,衛國不同意,晉軍隻好迂回,南渡黃河,繞到另一邊,攻打衛國的五鹿。猶記得當年晉文公路過五鹿討飯的時候,當地人給了他一碗土,現在他回來了,真的把五鹿人打得吃土。衛國被晉軍痛扁,可是子玉偏偏不來救援,晉文公很輕鬆地占據了衛國大片領土。
看到楚軍無動於衷,晉文公又率軍攻打曹國。曹國倒是個難啃的骨頭,讓晉軍損失不少,不過沒有楚軍的支援,曹國還是被攻破。宋、楚都曾對晉文公有恩,晉文公既不想直接攻打楚國救援宋國,也不想放棄宋國,所以想攻打楚國盟國吸引楚國注意力,讓他們先動手,可是楚國就是不來,怎麼辦呢?先軫想了個好辦法,他建議將這些曹、衛的土地分給宋國,晉文公照做,楚成王果然著急了,準備撤軍。
灰溜溜地撤軍,子玉肯定不同意,因為楚國國內對他有很多質疑聲,說他不堪大用。子玉為了證明自己,堅決請求與晉一戰,並請求國內派兵增援。楚成王其實已經不太想打了,隻派了一小隊人馬增援,子玉管不了太多,帶著楚國大軍就直奔晉軍而去。
晉文公當年流落楚國的時候,曾答應楚成王如若日後兩軍交戰,己方軍隊先避讓九十裡路。老狐狸狐偃提醒晉文公履行這個承諾,這就是“退避三舍”成語的來源。晉文公“退避三舍”一方麵說話算話,一方麵向後撤到自己的有利位置,縮短自己的補給路線,引誘楚軍深入,一石二鳥。
“城濮之戰”一觸即發,這次戰爭規模空前,九國參戰,總人數共計二十多萬。晉國方麵,晉聯合齊國,又用土地收買秦國,加上宋國,組成了聯軍。楚國方麵,還有陳、蔡、鄭、許四國盟軍。不要覺得二十幾萬還少,在當時那個年代,人口本來就少,大多戰爭就是數萬人在打來打去,這裡的二十幾萬,已經凝聚了主要諸侯國的大部分兵力。