周襄王二十年(公元前632年)春,晉國出動三軍、戰車七百乘伐曹,借道於衛,衛人不允許。晉軍遂繞道南下,在南河(今河南省淇縣南)渡過黃河。

正月初九,攻取衛國的五鹿。並揮師東進,攻占斂盂(在今河南濮陽東南),遣使至齊國通好。

二月,晉文公與齊孝公結盟,成功地把齊國拉到了自己一邊。衛侯見晉大軍壓境,晉、齊又結爲盟好,請求參加結盟,晉文公不答應。衛侯又想親近楚國,國人不同意,就驅逐了衛侯。晉軍不戰而得衛國。

戰前,魯國追隨楚國。在晉軍攻衛時,魯曾派公子買幫助戍守衛國。

現見晉軍勢大,衛侯逃亡,而楚國救衛沒有成功,便召回公子買而殺了他。一麵向晉國報告說他擅自興兵,另一麵又向楚國報告說他沒有完成防守任務,玩弄兩麵手法,坐待投靠勝利者。

三月,晉軍南下攻曹。十二日,攻入曹都(今山東定陶)。

晉軍攻擊曹、衛,本欲引誘楚軍北上。但楚軍並不上鈎,而猛攻宋國,宋再次向晉軍告急。晉軍若南下救宋,誘楚北上之戰略意圖則無法貫徹。若不南下救宋,必失掉宋國,陷於戰略被動地位。麵對這種形勢,晉大夫先軫又建議:讓宋國使者去賄賂齊、秦二國,使齊、秦勸楚退兵。

晉則捉住曹共公,分曹、衛的田地給宋人,以激怒楚國人,逼其不聽齊、秦的勸解。齊、秦勸楚不成,必然堅定了站在晉國一邊的立場,決定出兵對楚作戰。這是晉走出的第二著高棋。

楚成王見晉軍破曹降衛,與齊、秦結成了聯盟,中原形勢已變,就退回申邑(在今河南南陽市),命令大夫申叔撤出攻占齊國的穀邑,命令令尹子玉撤回圍宋的軍隊,並告誡子玉說:“無從晉師!晉侯在外,十九年矣,而果得晉國,險阻艱難,備嘗之矣。民之情僞,盡知之矣。”又說:“《軍誌》曰:‘允當則歸’。又曰:‘知難而退’。又曰:‘有德不可敵’。”①

但楚令尹子玉一向驕傲,不聽楚成王勸告,指派伯棼赴申邑向楚成王請求出戰,要求增援。楚成王首鼠兩端,既不願與晉交戰,卻又向子玉增派援軍東廣、西廣與若敖氏之六卒。

子玉得到楚成王的增援,更加狂傲。他派宛春赴晉軍說:“請複衛侯而封曹,臣亦釋宋之圍。”

子玉雖然狂傲,但身爲楚國令尹,也並非無謀之輩,他的這個計劃就是一石三鳥之策。如果晉答應他的要求,則曹、衛、宋三國都會感戴楚國。如果晉不答應他的要求,那麽曹、衛、宋三國將會怨恨晉國。

晉大夫子犯即上了子玉的圈套,說:“子玉無禮哉!君取一,臣取二,不可失矣。”主張拒絕子玉的建議。

但晉中軍帥先軫則識破了子玉的機關,說:“子與之!定人之謂禮。楚一言而定三國,我一言而亡之 .我則無禮,何以戰乎?” ②

於是,晉國私下答應恢複曹、衛,讓他們斷絕與楚國的關係,而扣留楚使宛春以激怒子玉。這是晉國走出的第三著高棋。

一向狂傲自大的子玉不能忍受這種刺激,冒然率軍北上攻擊晉軍,終於被晉軍牽上了鼻子。

當初,晉文公以公子身份顛沛流離時,曾路過楚國,受到楚成王的款待。

酒席宴上,成王問文公:“公子若反晉國,則何以報不穀?”

文公回答道:“若以君之靈,得反晉國。晉楚治兵,遇於中原,其辟君三舍(三十裏一舍)。”

這次,文公果然實踐諾言,麵對楚軍的進攻,命令自曹國後撤三舍,與宋、齊、秦三國軍隊一同駐紮在城濮(今山東省範縣南)。子玉率軍急進,依托丘陵險阻紮營,兩軍對峙於城濮。晉文公退避三舍,表麵上是報答以前楚成王給予的禮遇,實際上是運用“卑而驕之”、“怒而撓之”的誘敵之計,子玉再次上鈎。