義熙五年(409)四月,劉裕親率10萬大軍北伐南燕。南燕聞知晉軍將至,大將公孫五樓建議南燕主慕容超扼守大峴(今山東省中部沂山),刈除禾苗,堅壁清野,使晉軍求戰不得,又無法補充給養。慕容超對此不以為然,認為晉軍“遠來疲勞,勢不能久,但當引令過峴,我以鐵騎踐之,不憂不破”。慕容超的狂妄自大,導致了南燕軍的失敗。晉軍順利越過大峴,進入了平原地帶。為了防止南燕軍的突襲,劉裕將戰車4000輛分成左右兩翼,車上一律都用布遮擋,步兵夾於戰車之間,又以騎兵作為遊軍,緩緩而行。還沒等晉軍到臨朐城時,南燕軍鐵騎萬餘,前後交至。劉裕指揮眾將迎敵,雙方展開激戰。與此同時,劉裕還派參軍胡藩等率軍潛出燕軍之後,偷襲、克複臨朐(今屬山東),盡獲燕軍輜重。慕容超聽說臨朐已被晉軍攻下,隻好率殘部逃走,退據廣固小城(內城),並派遣尚書郎張綱向前秦求救。劉裕命士卒修築長圍,以斷絕廣固內外交通。劉裕聽說張綱善於製造攻城器械,便命將士在張綱返回廣固時將其擒獲,並命他修造各種攻城器械。十月,晉軍攻具齊備,向廣固發動猛攻。燕軍處境日益困難,出降者絡繹不絕。義熙六年二月,廣固城終於被晉軍攻下。

劉裕攻滅南燕之戰不僅計劃周密。同時,劉裕善於聽取他人意見和吸取敵人的人才為己用,參軍胡藩偷襲臨朐的建議以及前南燕尚書郎張綱的攻城器械對伐燕戰爭勝利的取得起到了重要作用。以上所有一切都是劉裕一戰成功的重要因素。當然,劉裕的北伐順應了民心,得到了廣大民眾的擁護和援助。民心所向對於這次擊敗南燕起了很大作用。而南燕主慕容超驕傲輕敵,不善於以己之長攻敵之短,屢次失去戰機,再加上政治腐敗,民心盡失,這些都是其迅速敗亡的原因。

義熙十二年(416)八月,劉裕又一次率軍北伐,攻打後秦。這次北伐,兵分五路。各路大軍進展順利,史稱“望風降服”。十月,晉軍到達洛陽,後秦主姚泓的弟弟平南將軍姚歸降。晉軍進占洛陽後,後秦內部生變。義熙十三年二月,晉軍前鋒諸軍在王鎮惡、檀道濟等人率領下,乘勝揮師西進,與後秦東平王姚紹軍相持於潼關(今陝西潼關縣北)、定城(在潼關西30裏)一線達5個月之久。劉裕親率水軍於二月從彭城(今江蘇徐州市)

出發,三月進入黃河,準備西進。北魏派10萬大軍屯於黃河北岸監視晉軍。晉水軍順利西進,七月到達陝城。八月,扶風太守沈田子大破姚泓於藍田,王鎮惡率軍經過激烈的戰鬥,終於攻入了長安。姚泓出降,後秦滅亡。

這次北伐是東晉曆次北伐中戰果最大的一次。本來,劉裕完全可以乘勝前進,平定隴右,恢複晉室疆域,可是劉裕為了急於回建康篡奪皇位,隻留下12歲的次子劉義真為安西將軍,率兵1萬坐鎮長安。不久,關中就被匈奴赫連勃勃攻占了。

劉裕回到江南,受封為宋王,公元420年代晉稱帝,國號宋。東晉王朝完結,曆史進入了南朝時期,東晉北伐至此結束。