晋文公七年,春,晋国人入侵郑国,以此来观察是否能够真正攻打郑国。
夏,狄人趁着晋国着力于郑国,攻打晋国。
晋文公派医衍用鸩酒毒死卫成公,宁武子得知之后,便贿赂医衍,让他减少下毒的量,结果卫成公便没有死。
鲁僖公为卫成公向周襄王、晋文公求情,卫成公因此返回卫国。
九月甲午,晋文公与秦穆公率军包围郑国,因为郑国曾对晋文公无礼,又亲近楚国。
晋国军队驻扎在函陵(郑地,今河南新郑北),秦国军队驻扎在汜南(郑地,今河南中牟)。
郑文公自知不敌晋、秦两军,便派郑国大夫烛之武劝说秦穆公,秦穆公果然为烛之武劝服,放弃攻打郑国,与郑国结盟,留下杞子、逢孙、杨孙戍卫郑国,便撤兵回国。
狐偃请求晋文公攻打秦军,晋文公没有同意,表示,‘不可。微夫人之力不及此。因人之力而敝之,不仁;失其所与,不知;以乱易整,不武。吾其还也。
于是,晋文公同样撤兵回国
《烛之武退秦师》出自《左传·僖公三十年》。
当初郑国公子兰出逃晋国,晋文公攻打郑国时,跟随在晋文公身边,请求不参与包围郑国国都。
晋文公同意了他的请求,让公子兰待在郑国的东部边境。
郑国大夫石甲父、侯宣多把公子迎接回去,拥立他成为郑国太子,希望能够跟晋国讲和,晋文公同意了。
晋文公八年,即公元前六二九年,鲁国得到了洮水以南、东靠济水的曹国旧土。
鲁国东门襄仲前往晋国,拜谢分得曹国的土地。
秋,晋国在清原(晋邑,今山西稷山东南)检阅军队,晋文公设立了五个军以抵御狄人,废五年所立之三行,另立新上、下军。
晋文公命赵衰统率新上军、箕郑辅佐;胥婴统率新下军,先都辅佐。
原中军由先轸统率,郤溱辅佐;上军由先且居(先轸之子)统率,狐偃辅佐;下军由栾枝统率,胥臣辅佐。
冬季,狄人包围卫国国都,卫成公迁都于帝丘。
晋文公九年,即公元前六二八年,楚国大夫斗章到晋国请求讲和,晋国大夫阳处父到楚国回聘,晋、楚两国开始正式往来。
夏,卫国人趁狄人内乱攻打狄人,狄人请求讲和。
秋,卫国与狄人结盟。
冬,晋文公去世,享年七十岁。
十二月庚辰,晋人准备将文公的棺材送到曲沃,出了绛城,棺材里传出声音像牛叫。
卜偃让大夫们跪拜文公的棺材,表示,国君就军事发布命令:将会有西边的军队越过国境来攻打我们,如果攻击他们,必定能取得胜利。
晋文公的儿子公子欢继位,是为晋襄公。