受封王爵
咸宁三年(277年),晋武帝封司马允为濮阳王,授任越骑校尉。太康十年(289年),晋武帝改封司马允为淮南王,封地未改,并担任都督扬江二州诸军事、镇东大将军、假节。
将士敬重
元康九年(299年),司马允回到朝廷。 同年十二月,晋惠帝皇后贾南风陷害愍怀太子司马遹,致使司马遹被废黜太子之位,朝中议事者曾想立司马允为皇太弟。永康元年(300年),赵王司马伦废黜贾南风,下诏任命司马允为骠骑将军、开府仪同三司、侍中,都督之职依旧,兼任中护军。司马允性格沉静刚毅,宫中负责警卫的将士们都敬重他。
不幸遇害
司马允暗中得知司马伦有篡权叛逆之心,就声称有病不去上朝,秘密豢养死士,暗自谋划要诛杀司马伦。司马伦很畏惧他,转任他为太尉,表面优待尊崇他,实际夺去了他的兵权。司马允称有病不接受任命。司马伦派御史逼迫司马允,逮捕他官属以下各级人员,以谋反罪检举他。司马允非常愤恨,审视诏书,原来是孙秀的手迹。他勃然大怒,马上逮捕御史,要杀死他,御史逃跑而侥幸免死,司马允杀死两名令史。司马允声色俱厉地对左右说司马伦想要败害国家,于是率领封国内的士兵和帐下亲兵七百人冲出,大呼道:“司马伦谋反,我要进攻他,凡是淮南王的将士都袒露左臂。”许多人前来归附他。司马允将进入皇宫,尚书左丞王舆关闭东掖门,司马允不能进入,便包围相府。他带领的士兵,全都是淮南身怀绝技的剑客。双方交战,多次打败司马伦的军队,司马伦的士兵战死一千多人。太子左率(太子卫队的长官之一)陈徽带领东宫士兵在宫内呼喊以作内应,司马允集结队伍在承华门前列阵,弓弩齐发,射向司马伦,箭如雨下。主书司马畦秘用身体掩蔽司马伦,箭射中他的背部而死。司马伦手下官属都隐蔽站立在树后,每棵树都中了数百箭,从清晨辰时激战至午后未时。陈徽兄长陈准当时担任中书令派军前来解围。司马伦的儿子司马虔任侍中,在门下省秘密邀约勇士,以富贵相许。派遣司马督护伏胤带领四百名骑兵从宫中冲出来,手举空板,伪称有诏书帮助司马允。司马允没有觉察,开阵接纳他们,下车接受诏令,被伏胤杀死,时年二十九岁。
起初,司马伦战败,人们都传说已经擒获司马伦,百姓十分高兴。不一会儿听说司马允去世,无不叹息。司马允的三个儿子都遇害,受他的牵连而被杀的有数千人。