马伦于永康元年（300年）废杀贾后，王衍便因上表离婚一事遭到弹劾，并建议禁锢终身；惠帝听从。次年司马伦篡位称帝，因王衍向来看不起司马伦为人，于是装作发狂并斩击婢女自保。同年，司马伦被讨伐他的齐王司马冏等击败，并被诛杀，王衍转拜河南尹，后转尚书，及后又任中书令。当时司马冏自恃助惠帝复位，专擅朝政，朝臣见他都下拜，唯王衍只行长揖之礼。及后因病去职。成都王司马颖选王衍任中军师，后任光禄大夫。永兴元年（304年）迁尚书左仆射，领吏部。光熙元年（306年）十二月，晋怀帝即位，王衍升任尚书令、司空，次年改任司徒。王