楚成王看到晋、齐、秦三大国结成联盟,形势明显不利于己。就主动把楚军撤退到楚国的申地(今河南南阳),并命令戍守过榖邑的大夫申公叔侯迅速撤离齐国,要求令尹子玉将楚军主力撤出宋国,避免与晋军冲突。他告诫子玉,晋文公非等闲人物,不可小觑,凡事要量力而行,适可而止,知难而退。但是子玉却骄傲自负,根本没有把楚成王的劝告听进去,仍坚决要求楚成王允许他与晋军决战,以消弥有关他指挥无能的流言,并请求楚成王增调兵力。楚成王优柔寡断,同意了子玉的决战请求,希冀他侥幸取胜;但是又不肯给给子玉增拨充足的决战兵力,只派了西广、东宫和若敖之六卒等少量兵力前往增援。
子玉得到了楚成王增派的这部分援兵后,更加坚定了他同晋军作战的决心。为了寻找决战的借口,他派遗使者宛春故意向晋军提出了一个“休战”条件:晋军撤出曹、卫,让曹、卫复国,楚军则解除对宋都的围困,撤离宋国。子玉的这一招显然不怀好意,实际上是要让晋国放弃争霸中原、号令诸侯的努力。但晋文公棋高一着,采纳了先轸更为高明的对策:一方面将计就计,以曹、卫同楚国绝交为前提条件,私下答应让曹、卫复国。另外扣留了楚国的使者宛春,以激怒子玉来战。子玉眼见使者被扣,曹、卫叛己附晋,果然恼羞成怒,倚仗楚、陈、蔡联军的兵力优势,气势汹汹地扑向晋军,寻求战略决战。
晋文公见楚军向曹都陶丘逼近,为了避开楚军的锋芒,选择有利的决战时机,诱敌深入,先发制人,遂下令部队主动“退避三舍”,撤到预定的战场——城濮(今河南濮城)一带。晋军的“退避三舍”,实际上是晋文公谋略胜敌的重要一着妙棋,它在政治上争得了主动——“君退臣犯,曲在彼矣”。赢得了舆论上的同情。在军事上造就了优势——便于同齐、秦等盟国军队会合,集中兵力;激发晋军将士力战的情绪;先据战地,以逸待劳等等。从而为晋军后发制人,夺取决战胜利奠定了坚实的基础。