司马伦生年不详,字子彝,是晋宣帝司马懿的第九子,生母为柏夫人。
曹魏嘉平初年(249年),司马伦被封为安乐亭侯。五等爵制建立后,改封东安子,拜谏议大夫。
晋武帝司马炎即位后,封他为琅琊王。
他曾命散骑将刘缉收买工所的人偷盗御裘而获罪,廷尉杜友依法判刘缉斩首弃市,司马伦也应同罪,但因他地位尊贵且是皇室亲属,相关部门为其求情,谏议大夫刘毅则认为法律应不分贵贱,晋武帝最终赦免了他的罪行。
司马伦到封国后,担任东中郎将、宣威将军。
咸宁年间(275年—279年),司马伦改封赵王,升任平北将军、都督邺城守事,后又晋封为安北将军。
元康初年(291年),迁为征西将军、开府仪同三司,镇守关中,因赏罚不公,导致氐族、羌族反叛,被召回京师,不久拜为车骑将军、太子太傅。
他与晋惠帝的皇后贾后及其母郭槐来往密切,态度谄媚,成为贾后的亲信。
元康九年(299年)十二月,愍怀太子司马遹被贾后陷害而废黜太子之位,司马伦担任右军将军。
次年,左卫司马督司马雅以及常从督许超,因曾侍奉太子且为其无罪被废而不平,他们与殿中中郎士猗等谋划废掉贾后,恢复太子之位,因张华、裴頠不愿参与,他们便游说司马伦的宠臣孙秀。
孙秀将此事告知司马伦,起初计划按原谋进行,但孙秀担心太子复立后自己不受重用,便劝司马伦暂缓行动,让贾后害死太子,再出面废贾后,司马伦听从了该意见。
之后孙秀传播流言,称有人谋划迎回太子,又劝贾谧等人及早杀死太子,太子最终被害。
元康十年(300年)夏四月,司马伦与孙秀决定废掉贾后。
起事当天,司马伦假传诏书,称贾后与贾谧谋划杀害太子,他要进宫废后,听从命令的可赐爵关中侯,不听命则诛灭三族。众人皆听从其令。
司马伦假传诏书进入皇宫,派齐王司马冏带领三部司马一百人进宫,华林县令骆休作为内应迎晋惠帝至东堂,司马伦将贾谧诛杀,贾后也被废为庶人并囚禁。
接着司马伦下诏告知尚书废黜贾后及拘捕其党羽之事,并召集群臣连夜入殿,将张华、裴頠、解结、杜斌等人抓住并在殿前诛杀,尚书怀疑诏书有诈,郎师景露请求看皇上手诏,却被司马伦以败坏众人情绪为由斩首。
随后,司马伦给自己任命持节、大都督、督中外诸军事、相国,侍中等诸多职位,又大肆封赏儿子和党羽,其长子司马荂任冗从仆射,其他儿子也分别封官,孙秀等人亦获封赏并掌兵权,众多文武百官被封侯,众人皆听命于司马伦。