起司马伦为人，于是装作发狂并斩击婢女自保。同年，司马伦被讨伐他的齐王司马冏等击败，并被诛杀，王衍转拜河南尹，后转尚书，及后又任中书令。当时司马冏自恃助惠帝复位，专擅朝政，朝臣见他都下拜，唯王衍只行长揖之礼。及后因病去职。成都王司马颖选王衍任中军师，后任光禄大夫。永兴元年（304年）迁尚书左仆射，领吏部。光熙元年（306年）十二月，晋怀帝即位，王衍升任尚书令、司空，次年改任司徒。王衍虽然官至司徒，位居宰辅，但不以国家为首，反而日夜思索自保的计策。王衍于是向太傅东海王司马越说：「中原已经大乱，我们应当依靠方