城濮の戦い
紀元前638年、宋の襄公と楚の成王が激突した泓水の戦いは楚の大勝に終わり、宋は楚の影響下に置かれることになった。
その翌年、晋の亡命公子である重耳(後の文公)は斉から宋へと向かった。宋の襄公は重耳の器量を知っていたため国君に対する礼をもって迎え入れ、重耳は歓待を受けた。襄公はこのあとまもなく泓水の戦いの戦傷のため死去する。その後で重耳は楚へと入り、成王は諸侯の礼をもって重耳一行を迎え入れた。宴の最中に成王は「もし国に帰って晋公になることが出来たら私にどう報いてくれるでしょうか?」と問いかけた。重耳は「もし王とやむを得なく戦場で相まみえることがあったら三舎だけ軍を引きましょう。」と応えた。これは軍隊が一日進んで宿営することを一舎といい、三舎とは三日分退く行程のことを指し、相手に一目置くという意味と同時に手加減するという意味がある。これに成王の臣下である子玉は王に対して無礼だと怒り、殺してしまいましょうと成王に言ったが、成王は重耳の亡命中である立場と器量を認めていたのでこれを退けた。
その後、重耳は秦の助けを借りて晋公の座に就く(以後、文公とする)。文公は狐偃・先軫らの補佐を受けて、周王室の内乱を収めるなど急速に勢威を広げていた。襄公の後を継いだ宋の成公は晋の力を借りて楚の影響下を脱しようと、楚との盟約を反故にして晋との親善を深める。このことに不快感を抱いた楚の成王は紀元前633年に軍を発し、陳・蔡・鄭・許らの諸侯と共に宋の首都を包囲し、宋は晋へ救援を求める。
これに応えて文公は三軍を召集し、宋の救援へと向かう。
晋軍の編成 中軍 将・郤縠、佐・郤臻 上軍 将・狐偃、佐・狐毛 下軍 将・欒枝、佐・先軫
(『史記』による。『春秋左氏伝』には狐毛が将、狐偃が佐になっている。)