遭到汉国军队侵扰，很多人建议迁都避祸，但王衍却卖掉车牛，坚持留都洛阳。永嘉四年（310年），司马越领大军出镇许昌，并以行台随行，王衍亦兼任太傅军司与大军同行。次年司马越在项县逝世，众人推举王衍为元帅，王衍见当时贼寇横行，局势混乱，不敢接受，推让给襄阳王司马范，但司马范亦辞让。最终王衍与司马范等共同率领军队护送司马越灵柩回东海国安葬。石勒知道司马越的死讯后领兵追击，在苦县宁平城追及并击溃王衍所率领的晋军，十余万将士被杀，王衍等人亦被石勒所俘。石勒后接见王衍，问他西晋的事，王衍陈述西晋衰败的原由，并称责任不