342年封为琅琊王，345年拜散骑常侍。356年加中军将军，359年十二月除骠骑将军。晋哀帝本应继晋成帝之位即位，但是由于权臣庾冰的意见而无法即位；司马丕于361年在晋穆帝死后即位，改元隆和，但是大将桓温当国，晋哀帝形同傀儡。晋哀帝好重佛法，又好黄老道，即位不久就迷上了长生术，按照道士传授的长生法，断谷、服丹药，结果服药后药性大发而不能听政，遂由褚太后再次临朝。兴宁三年（365年），晋哀帝因药物中毒死于太极殿，年仅二十五岁，葬于安平陵。