且说晋下军大夫栾枝,刺探楚右师用陈蔡为前队,喜曰:“元帅密谓我曰:‘陈蔡怯战而易动。’先挫陈蔡,则右师不攻而自溃矣。”乃使白乙丙出战。陈辕选蔡公子印,欲在斗勃前建功,抢先出车。未及比武,晋兵俄然退后。二将方欲追逐,只见对阵门旗开处,一声炮响,胥臣领着一阵大车,冲将出来。驾车之马,都用皋比蒙背,敌马见之,以为真虎,错愕跳踯,执辔者拿把不住,牵车回走,反打动斗勃后队。胥臣和白乙丙乘乱掩杀,胥臣斧劈公子印于车下,白乙丙箭射斗勃中颊。斗勃带箭而逃,楚右师大败,死者枕藉,不计其数。栾枝遣军卒,假扮作陈蔡甲士,固执彼处灯号,往报楚军,说:“右师已得胜,速速进兵,共成大功。”得臣凭轼望之,但见晋军北奔,烟尘蔽天,喜曰:“晋下军果败矣!”急催左师并力进步。斗宜申见对阵大旆高悬,料是主将,抖擞精力,冲杀过来。这里狐偃迎住,略战数合,只见阵后大乱,狐偃回辕便走,大旆亦今后退行。斗宜申只道晋军已溃,指引郑许二将,极力追逐。俄然鼓声大震,先轸郤溱引精兵一枝,从半腰里横冲过来,将楚军截做二段。狐毛狐偃翻身复战,两下夹攻。郑许之兵先自惊溃,宜申支架不住,拚死命杀出,遇着齐将崔夭,又杀一阵,尽弃其车马东西,杂于步兵当中,登山而遁。本来晋下军伪作北奔,烟尘蔽天,倒是栾枝砍下有莘山之木,曳于车后,车驰木走,天然刮地尘飞,哄得左军贪功索战。狐毛又诈设大旆,教人曳之而走,假装奔溃之形。狐偃佯败,诱其摈除。先轸早已算定,叮咛祁瞒虚建大将旗,守定中军,任他敌军搦战,切不成出应,自引兵从阵后抄出,横冲过来,恰与二狐夹攻,遂获全胜。这都是先轸预定下的战略。有诗为证:
请与君之士戏,君凭轼而观之,得臣与观看焉。
临机何用阵堂堂?先轸奇谋不成当。只用皋比蒙马计,楚军摆布尽奔亡。
晋文公集诸将问计。先轸曰:“本谋致楚,欲以挫之。且楚自伐齐围宋,乃至于今,其师老矣。必战楚,毋失敌!”狐偃曰:“主公昔日在楚君面前,曾有一言:‘他日治兵中原,请避君三舍。’今遂与楚战,是无信也。主公向不失期于原人,乃失期于楚君乎?必避楚。”诸将皆艴然曰:“以君避臣,辱甚矣!不成,不成!”狐偃曰:“子玉虽刚狠,然楚君之惠,不成忘也。吾避楚,非避子玉。”诸将又曰:“倘楚兵追至,何如?”狐偃曰:“若我退,楚亦退,必不能复围宋矣。如我退而楚进,则以臣逼君,其曲在彼。避而不得,人有怒心,彼骄我怒,不堪何为?”文公曰:“子犯之言是也。”传令:“全军俱退!”晋军退三十里,军吏来禀曰:“已退一舍之地矣。”文公曰:“未也。”又退三十里,文公仍不准驻军。直退到九十里之程,地名城濮,恰是三舍之远,方教安营息马。时齐孝公命上卿国懿仲之子国归父为大将,崔夭副之;秦穆公使其次子小子为大将,白乙丙副之;各率大兵,协同晋师战楚,俱于城濮下寨。宋围已解,宋成公亦遣司马公孙固如晋军拜谢,就留军中助战。
却说楚军见晋军移营退避,各有忧色。斗勃曰:“晋侯以君避臣,于我亦有荣名矣。不如借此旋师,虽无功,亦免于罪。”得臣怒曰:“吾已请添兵将,若不一战,何故复命?晋军既退,其气已怯,宜疾追之!”传令:“速进!”楚军行九十里,恰与晋军相遇,得臣相度阵势,凭山阻泽,据险为营。晋诸将言于先轸曰:“楚若据险,攻之难拔,宜出兵争之。”先轸曰:“夫据险以恪守也。子玉远来,志在战而不在守。虽据险,安所用之?”时文公亦以战楚为疑。狐偃奏曰:“本日对垒,势在必战。战而胜,能够伯诸侯;即便不堪,我外洋河内山,足以自固。楚其奈我何?”文公意犹未决。是夜寝息,忽得一梦,梦见如先年出亡之时,身在楚国,与楚王手搏为戏,力量不加,抬头倒地,楚王伏于身上,击破其脑,以口喋之。既觉,大惧。时狐偃同旧帐中,文公呼而告之,如此恁般:“梦中斗楚不堪,彼饮吾脑,恐非吉兆乎?”狐偃称贺曰:“此大吉之兆也!君必胜矣!”文公曰:“吉在那边?”狐偃对曰:“君抬头倒地,得天相照;楚王伏于身上,乃伏地请罪也。脑以是柔物,君以脑予楚,柔服之矣,非胜而何?”文公意乃豁然;天气乍明,军吏报:“楚国令人来下战书。”文公启而观之,书云: