晋文公虽然心有不甘,但是对方打出周襄王的旗号,他也不得不同意了。
晋文公把双方再次招进来,以审判庭的名义宣布卫成公弑君罪名成立。宁武子立即跳起来喊道,他愿意代替卫成公受刑。晋文公示意他安静下来,继续宣读审判结果:卫成公罪当受刑,但是周礼有言,君主无刑;那么刑罚只能由他人代受,士荣语言逻辑混乱、辩护不利,应当负主要责任。
然后他下令砍了辩护人士荣的头,剁了替身鍼庄子的脚,将卫成公流放到成周,这样算是完成了对卫成公的惩罚。
而宁武子因为忠诚被免于处罚——晋文公希望通过赦免他来取得好名声;卫成公在成周期间,宁武子始终陪伴在他身边。
元咺回到卫国,他在晋文公的支持下立叔武的兄弟公子瑕为君。
解决完卫国的问题,晋文公率领诸侯军队包围了许国。
在此期间,晋文公感到头晕脑胀心悸气短,御医用尽浑身解数也无法缓解症状。晋文公就把郭偃召来,为自己的凶吉进行占卜。
曹共公此时依然被晋人拘禁着。曹国人看到卫成公的下场,又回忆起曹共公干的那些龌龊事就不禁心惊肉跳。曹国人希望快速解决问题,不要把时间拖到对许行动以后,因为到那时晋文公就有大块时间考虑如何报复曹共公了。
就在这时,晋文公发病了,曹国人大喜,他们秘密找到郭偃,用情绪感动他,用道理说服他,用贿赂收买他;结果郭偃便同意为曹国人周旋。
郭偃对晋文公说道:“凶吉在人不在天。君侯的病,根在曹国。齐桓公召集盟会,帮助邢、卫复国;君侯召集盟会,却要灭亡同姓兄弟。曹叔振铎是文王的儿子,唐叔虞是武王的儿子;君侯大合诸侯而灭兄弟之国,不是周礼所允许的。
“君侯在城濮之战前曾私下许诺曹卫复国,却没有兑现承诺,这就失去了信用。曹卫同罪不同罚,就失去了公平。礼用来推行道义,信用来扞卫周礼,刑用来实现正义。失去了这三样,您认为会产生什么后果?”
晋文公听得很舒服,立即赦免了曹共公的罪行。曹共公被放出来之后,马上参加了诸侯之会。
这一年晋国的全部注意力都在中原,军队长时间出征造成国内空虚,白狄和其他戎狄借机干了不少趁火打劫的勾当。为了抵御戎狄入侵,晋文公回国后在原有的两支步兵军(左行与右行)的基础上又增加了中行军,并任命荀林父为中行将军,屠击为右行将军,先蔑为左行将军。