晋楚争霸,在城濮大战中,晋国力挫楚军,从而确立其在中原的霸主地位。随后,晋国屡次组织诸侯会盟,原本依附楚国的陈、蔡、郑三国,鉴于晋国势力日盛,亦转而投靠晋国加入联盟。然而郑国却摇摆不定,虽然与晋国有盟约在身,却又因畏惧楚国,暗中与楚国缔结了同盟。
晋文公得知此事后,决定联合诸侯共同讨伐郑国。朝中大臣认为仅凭晋国自身的兵力足以对付郑国,无需劳烦各路诸侯。晋文公曾与秦国约定互为军事支援,故此只通报了秦国。秦穆公正觊觎向东扩张,收到消息后,立即亲率大军抵达郑国,与晋军分别驻扎在郑国都城的东西两侧。面对秦晋两大强国的围困,郑穆公惊慌失措,迅速派遣能言善辩的烛之武前去游说秦军撤兵。烛之武向秦穆公剖析,郑作为晋的邻国,若两国联手灭郑,晋国将进一步壮大,届时很可能威胁到秦国的西部边境,秦国实则无法从中获益。同时他表示,若秦郑修好,未来秦晋交往,郑国还能作为秦国的接待站。秦穆公细思之下,认同了他的观点,遂与郑国达成和解协议,并留下三位将军率领两千兵马驻守郑国北门,自己则率余部悄然回国。
晋军发现秦军悄然撤离,极为不满,但晋文公念及秦穆公昔日恩情,未下令追击,仍继续对郑国都城展开猛攻。郑国见秦军已撤,但晋国攻势不减,无奈之下再度派人至晋营求和。晋文公接纳了郑国的投降,并与其签订了盟约后,撤军回国。秦穆公闻讯,得悉郑国又倒向了晋国,内心颇为愤慨,但为了避免破坏与晋国的关系,最终并未再次发兵攻打郑国。
公元前628年,郑文公逝世,其子公子兰继位,即郑穆公。同年冬天,晋文公也驾崩,其子晋襄公继位。秦穆公感到时机成熟,欲与晋国一较高下,争夺霸业。此时,留守郑国的将军杞子秘密致信秦穆公,声称已掌控郑国北门,建议秦军偷袭必胜。然而,蹇叔和百里奚两位老臣认为长途奔袭敌国,对方必将有所警觉,难以成功,劝阻秦穆公放弃此次行动。但秦穆公决心已定,不予采纳,任命百里奚之子孟明视为主将,蹇叔之子西乞术和白乙丙为副将,率领军车400乘秘密进攻郑国。蹇叔和百里奚预见此行必败,且担心儿子安危,含泪为出征将士送行。
秦军途径周地东进,于公元前627年二月到达距离郑国约八十公里的滑国境内(今河南省一带)。郑国有位名叫弦高的商人常在各国间经商,此时他正驱赶牛群前往洛邑贩卖,途中偶遇长途奔袭的秦军。他与同伴商议认为秦军穿行多国,显然是企图趁郑国不备进行偷袭,但直接向郑国报告已来不及,于是他一方面派人火速回国告知郑穆公,另一方面则将牛群引至秦军营地,冒充郑国使臣求见秦军主将孟明视。