402年司馬元顯為了避免桓玄乘亂偷襲,搶先西征,任劉牢之為先鋒,司馬尚之為后部?;感猜受姈|下,最后大破司馬尚之。劉牢之認(rèn)為司馬元顯無用,倒戈引桓軍入建康。桓玄控制朝廷,誅殺異己,先后殺司馬元顯與道子,并奪取劉牢之兵權(quán),誅戮部分北府將領(lǐng),提拔北府將領(lǐng)劉裕。他最初有意革新朝廷,但最后豪奢縱欲,政令無常,漸失人心。403年桓玄篡位稱帝,建國桓楚。隔年劉裕同北府舊將何無忌、劉毅舉兵,收復(fù)建康,桓玄挾晉安帝西撤江陵。不久桓玄又率軍東下,被劉毅擊敗,在逃往蜀地途中被馮遷所殺。而后桓振、桓謙又挾晉安帝反抗,劉裕直到405年肅清桓氏勢力,得以迎晉安帝復(fù)位,掌控了朝廷。
劉裕掌控朝廷后,荊州刺史劉毅忌妒,意圖舉兵。412年劉裕搶先討伐劉毅,劉毅兵敗自殺。405年,益州刺史毛璩率軍討伐江陵桓振,蜀軍不愿遠(yuǎn)征,推譙縱為首叛晉,譙蜀建立。蜀軍隨后攻陷成都,殺死毛璩,譙縱自號成都王。408年晉廷派劉敬宣率軍討伐但失敗。413年劉裕派西陵太守朱齡石率軍西伐,攻占成都。譙縱敗退自殺,譙蜀亡。
盧循為孫恩繼承人,桓玄為安撫他任為永嘉太守,但他仍不斷襲擾沿海。404年盧循由海路攻占廣州,隔年晉廷又任命他為廣州刺史。410年盧循趁劉裕北伐南燕之機(jī),與其姐夫徐道覆分二路北伐,于桑洛州合力擊潰劉毅(今江西九江市),乘勢攻入京師建康,史稱盧循之亂。此時劉裕回撤,盧循和徐道覆發(fā)生內(nèi)訌,盧循久攻京師不破,撤守尋陽。10月徐道覆進(jìn)攻江陵,為守將劉道規(guī)所敗。12月盧循被晉軍打敗,退守廣州。411年劉裕派兵擊殺徐道覆。盧循最后于交州被交州刺史杜慧度殲滅,投水自殺,至此亂事平定。
劉裕消滅若干異己后,先后發(fā)動兩次北伐。當(dāng)時南燕慕容超屢屢入侵,409年劉裕率軍伐南燕,次年攻破南燕都城廣固(今山東青州市),擒殺慕容超,南燕亡。而后因盧循叛亂,劉?;貛?。后秦屢遭胡夏帝赫連勃勃入侵,國勢大衰,幼主姚泓初立。416年12月劉裕再度北伐,連克許昌、洛陽。隔年劉裕兵分兩路圍攻關(guān)中,最后攻破長安,后秦亡。但該年冬天,留守京師的劉穆之突然去世,為免后方生變影響自己的篡晉計(jì)劃,劉裕不得不返回京師。他命其幼子劉義真同王鎮(zhèn)惡、沈田子諸將防守長安,后來諸將內(nèi)訌,胡夏帝赫連勃勃率軍攻擊。417年冬劉裕命劉義真等率軍東歸,遭夏軍追擊,元?dú)獯髠?,至此北伐結(jié)束。長安雖得而復(fù)失,良將勁兵損失頗多,但收復(fù)之地并未損失多少,潼關(guān)以東收復(fù)的部分關(guān)中之地和整個河南地區(qū)仍然得到劉裕的重兵扼守。經(jīng)過兩次北伐,黃河以南、淮水以北以及漢水上游的大片地區(qū),為劉裕據(jù)有。同年劉裕殺晉安帝,立其弟德文,為晉恭帝。420年劉裕廢晉恭帝自立,是為宋武帝,建國宋,史稱南朝宋,東晉至此滅亡,進(jìn)入“南北朝時期”。此時北方仍處于五胡十六國時期,直至440年北魏統(tǒng)一后方形成南北朝對峙格局。