公元402年,荆州刺史的东晋将领桓玄发动政变,企图夺取刘牢之的北府兵兵权。在刘牢之自杀后,野心勃勃的桓玄逼晋安帝退位,自己当了皇帝。刘裕想推翻桓玄,但实力不足。于是,他假意投到桓玄麾下,暗中却在京口联络了许多北府兵中下级军官。两年后,刘裕率兵向都城建康进攻,桓玄急忙派兵阻击,结果却被刘裕打得大败,便挟持晋安帝逃到益州。刘裕进入建康后,指挥各路人马追击桓玄,下令诛杀桓玄一族。桓玄逃到益州后,被当地人杀死。刘裕迎晋安帝回建康复位。
晋安帝对刘裕等诸将大加封赏,刘裕被提升为侍中、车骑将军,从此控制了东晋的军政大权。7年后,南燕侵扰淮北,刘裕上表晋安帝请求出师北伐。刘裕深知,北伐是当时东晋人的愿望,打胜了,就会提高自己的威望。
南燕是鲜卑人建立的政权。公元409年4月,刘裕率领水陆大军讨伐南燕,沿淮水、泗水进军下邳(今江苏邳县西南),再由陆路进军包围广固(今山东益都西北),前后仅用了10个月的时间,便灭掉了南燕。南燕灭亡后没多久,后秦的皇帝姚兴病死,几个太子互相残杀,于是刘裕又亲自带兵去攻打后秦。
公元48月,刘裕让尚书左仆射刘穆之管理朝政,筹备粮草,以供应作战部队,自己率水陆大军8万,分五路北伐后秦。
晋军都督王仲德带领人马做先锋,沿黄河向西行,很快就到了滑台。另一路由龙骧将军王镇恶带领,沿淮水、泗水北上,再沿黄河向西前进,一直打到洛阳。洛阳的守将姚洗见东晋势力强大,被迫打开城门投降。王镇恶进入洛阳后,俘虏了后秦的士兵4000多人,又把他们放了,让他们回家,秦国人都很高兴。
收复洛阳后,刘裕派将军毛修之留在洛阳守城,王镇恶继续西进。这时,东晋朝廷下了诏书,任刘裕为相国,封为宋公,并且授给他九锡之礼。九锡是九种礼器,是天子赐给诸侯、大臣有殊勋者的九种器用之物,是最高礼遇的表示。在朝廷中只有一个人可以授,一旦授了九锡,他的地位就只在皇帝之下了。这说明当时的刘裕地位已经很高了。
秦王姚泓听说洛阳失守,急忙派太守姚绍同武卫将军姚鸾带了5万兵马去援助潼关,王镇恶与姚绍的军队作战,秦军大败,5万人马损失了一半。姚绍逃到了定城(今陕西华阴县东)。姚泓得知战败的消息,非常着急,就向魏国皇帝拓跋嗣求援,希望魏国能帮助他打败晋军。可他没想到,此时刘裕也派人到了魏国,想借北魏的水道向西进军。魏国皇帝拓跋嗣不知怎么办好,有大臣建议让刘裕的部队过去,但又害怕刘裕会攻打自己,就派司徒孙嵩带领10万人驻守在黄河北岸,监视晋军的活动。
晋军开始西行,魏军也派了几千名骑兵在岸上,跟随晋军一起西行。魏军不断地扰乱晋军,晋军士兵有的掉入水中被冲到岸上,魏军抓到立刻就杀掉,刘裕非常生气,就派兵下船去攻打魏国。可是,等晋军士兵一上岸,魏军就躲了起来,晋军士兵没办法,只好又上船,魏军就又来扰乱。于是,刘裕摆出一个“却月阵”与魏军对战。
“却月阵”由700名勇士、200辆战车组成。刘裕派亲兵登上黄河北岸,沿着河岸摆了一个半圆形的军阵,两头紧靠着河岸,中间向外鼓出来,像一个新月。阵的中央,埋伏着名弩弓手,由新野太守朱超石带领。最中间有一辆战车,上面有一杆白色的旗,用来发布命令。
魏军将士一看这从来没见过的阵势,有些害怕,不敢贸然向前。这时,“却月阵”中的白旗连续晃动几下,2000名弩弓手登上战车。司徒嵩以为晋军要进攻了,赶忙下令,命部队向“却月阵”冲去。这时,白旗一摇,晋军弩弓手开始射箭,魏军一排排倒下。可魏军人数众多,还是不断向前冲。白旗又一摇,“却月阵”中又推出100辆战车,车上装着弩弓利矛,晋军用锤子敲打机关,无数利矛飞出来射向魏兵,这种矛十分厉害,可以一下射死三四个人。魏军一下子就有几千人倒下,后面的人吓得赶紧逃命,再也不敢扰乱晋军西进了。晋军几路人马会合,很快攻下了长安。
刘裕在长安住了两个月,建康传来急报“左仆射刘穆之死了”。刘裕非常担心,他害怕自己离开朝廷太久,大权会被别人夺去,于是就返回了建康,亲自掌管了朝政,又派一些亲信担任要职。此时,刘裕做皇帝的野心一天天大起来。不久后,他派人害死了晋安帝。
之后,刘裕又派心腹傅亮去劝晋恭帝让位给他。当时,朝廷大臣们认为刘裕做皇帝是改变不了的,都不敢说什么。晋恭帝见大势已定,就被迫把皇位让给了刘裕。刘裕登上皇位,改国号为宋,史称刘宋。东晋王朝至此灭亡。从这之后,公元4到公元589年里,中国南方的政权频繁更替,先后经历了宋、齐、梁、陈四个王朝。这些王朝都在建康定都,史称“南朝”。