公元前632年,這是晉文公重耳奠定霸業的轟轟烈烈的一年,亦即晉楚城濮之戰發生的年份。在城濮之戰這樣的大事件裏,衛國雖然隻是一個無足輕重的角色,但作為被城門失火殃及的池魚,自始至終麻煩不斷。
據《左傳·僖公二十八年》,晉文公打算攻打曹國,向衛國借路,衛國不肯,晉軍便繞道而行,但不免和衛國發生了武裝衝突。隨即,晉文公與齊昭公在斂盂結盟,衛成公請求加盟,卻被晉國拒絕。衛成公轉而想要親附楚國,但國內臣民反而趕走了衛成公以取悅晉國。接著,在晉國一些巧妙的外交手段下,原本依附楚國的衛、曹兩國接連宣布和楚國斷交。這徹底激怒了楚國,春秋史上著名的城濮之戰於是爆發。
戰役的結果是晉勝楚敗,晉文公設踐土之盟,迎來一生中聲譽的頂峰。這個時候,被國人趕走的衛成公聽說了楚國戰敗的消息,知道自己已經沒辦法回國,便先後到楚國和陳國避難,期待複位的時機,同時安排大夫元咺輔佐自己的弟弟叔武攝政,由叔武赴踐土接受盟約。
然而事情一波三折,就在元咺出發之後,有人向衛成公進讒,說元咺已經在國內立叔武為君。此時元咺的兒子元角正跟隨著流亡的衛成公,衛成公一怒之下,既然暫時殺不了元咺,便遷怒殺了元角。
在得知兒子的死訊之後,元咺依舊忠實地執行著衛成公的命令,侍奉叔武回國攝政。這年六月,晉國恢複了衛成公的君位,追隨衛成公流亡在外的寧武子便與留守國內的衛國大夫們在宛濮訂立盟約,約定追隨衛成公流亡的人不可居功,留在國都的人也不必畏罪,自此之後要拋棄成見,和睦相處。盟誓之後,國都裏的人便放寬了心,準備迎接衛成公回來複位。
衛成公卻並未因此放下猜忌,特意提前進城。其時叔武正在洗頭,聽說哥哥回來,高興之下握著頭發急急出去迎接,沒想到卻被衛成公的前驅一箭射死。元咺聞訊之下,立即動身逃去晉國。