咸宁三年(277年),
晋武帝封司马允为濮阳王,授任
越骑校尉。
太康十年(289年),晋武帝改封司马允为淮南王,封地未改,并担任都督扬江二州诸军事、镇东大将军、假节。
元康九年(299年),司马允回到朝廷。同年十二月,晋惠帝皇后
贾南风陷害愍怀太子
司马遹,致使司马遹被废黜太子之位,朝中议事者曾想立司马允为
皇太弟。
永康元年(300年),赵王
司马伦废黜贾南风,下诏任命司马允为
骠骑将军、
开府仪同三司、
侍中,都督之职依旧,兼任
中护军。司马允性格沉静刚毅,宫中负责警卫的将士们都敬重他。
司马允暗中得知司马伦有篡权叛逆之心,就声称有病不去上朝,秘密豢养死士,暗自谋划要诛杀司马伦。司马伦很畏惧他,转任他为
太尉,表面优待尊崇他,实际夺去了他的兵权。司马允称有病不接受任命。司马伦派
御史逼迫司马允,逮捕他官属以下各级人员,以谋反罪检举他。司马允非常愤恨,审视诏书,原来是
孙秀的手迹。他勃然大怒,马上逮捕御史,要杀死他,御史逃跑而侥幸免死,司马允杀死两名令史。司马允声色俱厉地对左右说司马伦想要败害国家,于是率领封国内的士兵和帐下亲兵七百人冲出,大呼道:“司马伦谋反,我要进攻他,凡是淮南王的将士都袒露左臂。”许多人前来归附他。
司马允将进入皇宫,尚书左丞
王舆关闭东掖门,司马允不能进入,便包围相府。他带领的士兵,全都是淮南身怀绝技的剑客。双方交战,多次打败司马伦的军队,司马伦的士兵战死一千多人。太子左率(太子卫队的长官之一)陈徽带领东宫士兵在宫内呼喊以作内应,司马允集结队伍在承华门前列阵,弓弩齐发,射向司马伦,箭如雨下。主书司马畦秘用身体掩蔽司马伦,箭射中他的背部而死。司马伦手下官属都隐蔽站立在树后,每棵树都中了数百箭,从清晨辰时激战至午后未时。陈徽兄长陈准当时担任
中书令派军前来解围。司马伦的儿子司马虔任
侍中,在
门下省秘密邀约勇士,以富贵相许。派遣司马督护伏胤带领四百名骑兵从宫中冲出来,手举空板,伪称有诏书帮助司马允。司马允没有觉察,开阵接纳他们,下车接受诏令,被伏胤杀死,时年二十九岁。
永宁元年(301年),司马伦被诛杀,齐王
司马冏上表为司马允申辩:“已故的淮南王司马允忠孝精诚,忧国忘我,奋发讨伐逆贼,几乎接近胜利。遭遇凶险的天运,而致遇难身死,叛党构恶诬陷,同时杀害了三个儿子,冤魂酷毒,无人不为之悲痛心酸。等到义兵兴起,淮南国众人自相率领,人数超过一万,个个心怀慷慨,悲愍国运衰绝,流泪叹息。我将以儿子
司马超继司马允之后,以慰生者及死者。”朝廷诏令改葬,赐给司马允特殊的礼遇,追赠
司徒。
晋武帝太康十年十一月甲申(廿三,289年12月23日),皇子濮阳王司马允徙封淮南,持节出镇。此后他作为持节都督,执掌江、扬二州军事逾十载,官至镇东大将军。其封国淮南、同母弟封国吴国(吴、吴兴、丹阳三郡),都在扬州;其二子迪、郁,则分别出继,嗣封汉王与秦王。秦国在关中享有八万户封,而吴国在江东封户超过十万。即便在江东有天灾,或关中有战乱的情况下,司马允一系诸侯王国,仍然能够获得相当充足的国禄收入,由此保障司马允得以聚集大量“淮南奇才剑客”组成国兵。另一方面,司马允的同母弟、吴王司马晏,则利用其王国可自由任用国吏的便利,密切联系吴国三郡尤其吴郡的旧东吴政权人士,甚至短暂到过淮南与兄长会合。这与《晋书·刘颂传》所载首任淮南相(内史)刘颂在太康末年提出过的策略高度一致,不动声色间,已形成了一种地方势力。
司马冏:“故淮南王允忠孝笃诚,忧国忘身,讨乱奋发,几于克捷。遭天凶运,奄至陨没,逆党进恶,并害三子,冤魂酷毒,莫不悲酸。”