周襄王二十三年(公元前629年),晋国、秦国联军兵围郑国,郑国有亡国之患。郑大臣烛之武出城面见秦穆公,告诉他,秦国离郑国远,而晋国离郑国近,若郑国灭亡,有利于晋,于秦国无益处。秦穆公认为烛之武言之有理,于是与郑国结盟,命秦国大将杞子、逢孙、杨孙等戍守郑国。秦军退去,晋军也无奈而退去。
周襄王二十五年(公元前627年),晋文公去世,晋襄公即位。郑国使杞子守北门,杞子使人密报秦穆公说:“若派军前来偷袭郑国,必取之。”秦穆公就此事征求大臣蹇叔的意见,蹇叔说:“千里行军,其谁不知?劳师以袭远,此事闻所未闻。师劳力竭,郑国必有所备,此事断然不可。”秦穆公不听,命百里奚之子孟明视、蹇叔之子西乞术、白乙丙带军远征。蹇叔哭而送之,告诉其两子:“晋军必设伏于崤山。崤山有二陵,其南岭,为夏王的陵墓所在;北岭,周文公在此避过风雨,秦军必葬身于此处。”
秦师大举东进,次年春,秦师过周都王城的北门,兵车卫都脱去头盔,下车步行,但立即又上车,战车有三百乘。周朝贵族王孙满当时还是个幼童,与周王一起在北门观看,王孙满告诉周王:“秦师轻慢无礼,必将失败。”
郑国大商人弦高要到洛邑从事商务活动,在滑国(都城在今偃师市东南)遇见秦师。弦高大惊,派人火速奔告郑国,自己诈称郑国使臣,献四张熟牛皮和十二头牛犒劳秦师。弦高诈传郑君之命,告诉三位秦帅:“我们的国君听说三位将军率军而来,特使下臣前来犒劳。”三帅误以为郑国已有防备,不敢东进,于是灭掉滑国,率军西归。在郑国的杞子等秦人知道阴谋败露,又恐回秦国获罪,仓皇出逃到齐、宋两国。
再说晋国正处于大丧之中,闻秦师千里袭郑,灭滑而还,君臣商议如何应对。晋大臣原轸主张讨伐秦师。大臣栾枝说:“秦国对晋文公有恩,未报其恩而伐其师,如何面对先君?”原轸说:“先君之丧,秦国不加哀悯,却灭我同姓(晋、滑同姓),甚为无礼。并且今日纵敌,必为数世之患。”晋襄公听从原轸的意见,发布诏令,讨伐秦师。同时,联合姜戎,欲共同破秦。
晋襄公带兵亲征。当年四月,秦晋两军大战于崤山(今洛宁、陕县、灵宝间)。秦军千里奔袭,无功而返,士气低落,人疲马乏。而晋军以逸待劳,士气旺盛。并且秦军不曾预料到晋军来袭,一旦遇敌,惊慌失措,晋军轻松获胜,孟明视等三帅被生擒,其余将卒,皆被斩杀。晋襄公嫡母(秦国女)为三帅请命,三帅归秦。
崤之战后,秦晋又有彭衙之战,秦师战败。周襄王二十九年(公元前623年),秦以孟明视为帅,大举攻晋,晋军坚守不出,秦师至崤山,埋葬崤之战秦军尸骨而还。崤之战遏制了秦东进的势头。秦穆公转而向西发展,讨伐西戎。益国十二,开地千里,遂霸西戎。