太元二十一年(396年)司马曜被杀,太子司马德宗继位。元兴二年(403年),桓玄篡位称帝,改国号为楚,安帝被封为平固王,元兴三年(404年),又被迁至浔阳,同年三月,刘裕在京口起兵,击败桓玄,桓玄挟安帝逃往江陵,不久桓玄被杀,安帝在江陵复位。但桓玄的余部又攻陷江陵,安帝再次被俘。直到义熙元年(404年)安帝才得以回到建康。司马德宗只能再次沦落为傀儡,落入新军阀刘裕手中,后被刘裕派近侍勒死,伪造了一道遗诏,宣称因病暴毙,临终时把皇位传给了司马德文[2]。
《晋书·安帝纪》称“帝不惠,自少及长,口不能言,虽寒暑之变,无以辩也。凡所动止,皆非己出”[3]。