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