石勒准备把长江、汉水地区作为大本营加以经营,谋士张宾却认为他属下的士兵多是北方人,在南方会水土不服,加之在这里并没有根基,因此坚决反对。石勒听从张宾的建议,率军渡过汉水,进攻江夏郡(今湖北云梦县),于永嘉五年(311)正月十五日攻克。二月,进攻新蔡郡(今河南新蔡县),杀死新蔡王司马确,又攻克了许昌,杀死平东将军王康。
司马越留在洛阳的嫡系何伦等人无法无天,公然掠夺公卿大臣家的财产,甚至让公主陪睡。怀帝忍无可忍,秘密写信给和司马越有仇的青州刺史苟晞,让苟晞征讨司马越等人。苟晞有了底气,向天下人公布司马越的罪行,发布公告说:“司马越目无朝廷,独断擅权,使天下大乱,今天我受命讨伐此贼,还政王室!”
然而苟晞和怀帝往来的书信早被司马越的奸细获得,于是司马越也公布了苟晞的罪行,发布讨伐檄文,两个昔日好友正式翻了脸。司马越命从事中郎杨瑁担任兖州刺史,让他联合徐州刺史裴盾共同讨伐苟晞,苟晞也派骑兵进入洛阳,要逮捕司马越的心腹河南尹潘滔。潘滔趁夜色掩护,逃出洛阳城。
内忧外患越积越深,司马越恐惧焦虑,一病不起,他预感到自己已时日无多,便把后事全部托付给了王衍。永嘉五年(311)三月十九日,司马越在项县撒手人寰,八王之乱的最后一个王生命终结,当权近五年。王衍对外封锁了司马越死亡的消息。
由于期间不断有民众加入,司马越从洛阳城出来的四万人马已经壮大到了十万,他一死,群龙无首,大家都推举大名士王衍为元帅,但王衍最擅长的是清谈,现在天下大乱,十万人的安危寄予他手,这副担子他不可敢接手,就让襄阳王司马范(司马玮之子)主持大局,但司马范也不干。没有人出来当首领,那就集体领导吧,于是王衍等高级官僚一商量,决定先把司马越灵柩送回他的封国东海国(今山东郯城县)。
世上没有不透风的墙,在洛阳的何伦、李恽等人听说司马越已经去世,赶紧带上裴妃以及世子司马毗从洛阳东门出城逃走。怀帝得到消息后,追贬司马越为县王,任命苟晞为大将军、大都督,兼都督青、徐、兖、豫、荆、扬六州诸军事。
石勒也得到了司马越去世的消息,立即率领轻骑兵加速追赶王衍等人。永嘉五年(311)四月,石勒的军队在苦县宁平城(今河南郸城县东北)追上了晋军。王衍派将军钱端迎战,被石勒打得大败,钱端战死。石勒率骑兵包围晋军,晋军顿时惊慌不已,自相践踏,惨叫连连。石勒又命令放箭,瞬间箭如雨下,晋军不是被杀就是被俘,无一人幸免。太尉王衍、吏部尚书刘望、廷尉诸葛铨、豫州刺史刘乔、太傅长史庾敳、襄阳王司马范、任城王司马济、武陵庄王司马澹、西河王司马喜、梁怀王司马禧、齐王司马超等高官和随行宗亲被生擒。
石勒把他们带到帐中,特别赐座,向他们询问晋朝内乱的原因。王衍是名士,自然口才特别棒,他从晋朝建国说起,滔滔不绝,抑扬顿挫,犹如说书人,把故事讲得引人入胜,石勒听得着迷了,不知不觉过去大半天。王衍最后说自己年轻时并不想当官,无心参与国事,后来阴差阳错才到了今天的位置。除了解脱自己,他还进一步向石勒献媚,劝石勒称帝,希望借此让石勒赦免自己。
石勒没有想到王衍这么没有节操,他大怒道:“您可谓是天下闻名,少壮登朝,到了白头时候身居高位,担负重任,怎么还说自己没有当官的欲望呢?把天下搞乱的,不是你等又是谁呢?!”
石勒命人把王衍等架出去,大家都怕死,纷纷洗白自己,只有襄阳王司马范神色严肃,他大声喝道:“面对今天的情形,你们为什么还要白费口舌?”
石勒问手下孔苌:“我行走天下,到过多个地方,但从未见过这类名满天下的名士,是不是应该把他们留下来?”孔苌不同意,说道:“他们都是晋朝的公卿大臣,深受晋室朝廷恩惠多年,必然不会为我们所用,留下来又有什么用呢?”石勒皱皱眉:“即便是这样,也不能用刀杀了他们。”于是当天夜里,他派人把墙推倒压死了王衍、司马范等人。王衍临死时叹道:“唉!我等虽然不如古人,但平时若不崇尚虚浮,同心协力,匡扶天下,怎么会到了今天这个地步!”王衍死时,年五十六岁。
石勒又命人劈开司马越的灵柩,把司马越的尸体抬出来用火焚烧,说道:“把天下搞得大乱的就是这个人,我今天要为天下人报仇!”
古代信息不发达,何伦等人逃到洧仓(Wěicāng,今河南许昌市鄢陵县),正好与石勒大军遭遇,战败。司马毗以及另外四十八个司马家的亲王又被石勒俘虏,何伦和李恽逃脱。裴妃被冲散,几年以后她渡过长江,逃往南方投靠司马睿。当初琅琊王司马睿能够镇守建邺就是裴妃的主意,所以司马睿对她非常关照,并把自己的儿子司马冲过继给裴妃,作为司马越的后代继承爵位。这是后话。