402年,司马元显为了避免桓玄乘乱偷袭,抢先西征,任刘牢之为先锋,司马尚之为后部。桓玄也率军东下,最后大破司马尚之。刘牢之认为司马元显无用,倒戈引桓军入建康。桓玄控制朝廷,诛杀异己,先后杀司马元显与道子,并夺取刘牢之兵权,诛戮部分北府将领,提拔北府将领刘裕。他最初有意革新朝廷,但最后豪奢纵欲,政令无常,渐失人心。
403年,桓玄篡位称帝,建国
桓楚。隔年
刘裕同北府旧将
何无忌、刘毅举兵,收复建康,桓玄挟
晋安帝西撤
江陵。不久桓玄又率军东下,被刘毅击败,在逃往蜀地途中被冯迁所杀。而后桓振、
桓谦又挟晋安帝反抗,刘裕直到
405年肃清桓氏势力,得以迎晋安帝复位,掌控了朝廷。
405年,益州刺史
毛璩率军讨伐江陵桓振,蜀军不愿远征,推
谯纵为首叛晋,
谯蜀建立。蜀军随后攻陷成都,杀死毛璩,谯纵自号成都王。408年,晋廷派
刘敬宣率军讨伐但失败。413年刘裕派西陵太守
朱龄石率军西伐,攻占成都。谯纵败退自杀,谯蜀亡。
卢循为
孙恩继承人,桓玄为安抚他任为
永嘉太守,但他仍不断袭扰沿海。404年卢循由海路攻占
广州,隔年晋廷又任命他为广州刺史。410年卢循趁刘裕北伐
南燕之机,与其姐夫
徐道覆分二路北伐,于桑洛州合力击溃刘毅(今
江西九江市),乘势攻入京师建康,史称
卢循之乱。此时刘裕回撤,卢循和徐道覆发生内讧,卢循久攻京师不破,撤守寻阳。10月徐道覆进攻
江陵,为守将
刘道规所败。12月卢循被晋军打败,退守
广州。411年刘裕派兵击杀
徐道覆。卢循最后于
交州被交州刺史
杜慧度歼灭,投水自杀,至此乱事平定。
刘裕掌控朝廷后,荆州刺史刘毅忌妒,意图举兵。412年,刘裕抢先讨伐刘毅,刘毅兵败自杀。
刘裕消灭若干异己后,先后发动两次北伐。当时
南燕慕容超屡屡入侵,409年刘裕率军伐南燕,次年攻破南燕都城广固(今
山东青州市),擒杀慕容超,南燕亡。而后因卢循叛乱,刘裕回师。
后秦屡遭
胡夏帝
赫连勃勃入侵,国势大衰,幼主
姚泓初立。
416年12月刘裕再度北伐,连克许昌、洛阳。隔年刘裕兵分两路围攻关中,最后攻破
长安,后秦亡。但该年冬天,留守京师的
刘穆之突然去世,为免后方生变影响自己的篡晋计划,刘裕不得不返回京师。他命其幼子
刘义真同
王镇恶、
沈田子诸将防守长安。后来诸将内讧。胡夏帝
赫连勃勃率军攻击。
417年冬刘裕命刘义真等率军东归,遭夏军追击,元气大伤,至此北伐结束。长安虽得而复失,良将劲兵损失颇多,但收复之地并未损失多少,潼关以东收复的部分关中之地和整个河南地区仍然得到刘裕的重兵扼守。经过两次北伐,黄河以南、淮水以北以及汉水上游的大片地区,为刘裕据有。