担任河南令，进封浈阳子，拜给事黄门侍郎。晋武帝受禅，封为高阳王，食邑五千五百七十户。泰始二年（266年）任北中郎将、督邺城守诸军事。泰始六年（270年）入朝，因父司马孚年高，乞留京师供养。次年三月任尚书右仆射，时年三十七岁。后贾充等人中伤吏部尚书任恺，并遣使司马珪上奏免任恺官。泰始十年闰正月己卯日（274年3月11日）去世，诏遣兼大鸿胪持节监护丧事，赠车骑将军、仪同三司。谥号元（高阳元王）。
嗣子.司马珪当时有美誉，晋武帝非常哀悼惋惜。无子，诏以太原王司马辅之子司马缉袭