義熙十二年(416)一月,後秦主姚興死,姚泓繼位,內部叛亂送起,政權不穩。劉裕認為這是滅亡後秦的良機。八月,劉裕以劉穆之任尚書左仆射,內總朝政,外供軍糧,自己率大軍分四路北伐。九月,劉裕扺達彭城。龍驤將軍王鎮惡、冠軍將軍檀道濟領兵由淮、淝轉向許、洛,後秦諸屯守皆望風降附,晉軍進展神速。十月,王鎮惡軍占領洛陽。
次年正月,劉裕留其子劉義隆鎮守彭城,自率大軍北上。此時北魏派十萬重兵駐守河北,並以遊騎騷擾晉軍。劉裕在行軍中,雖常設奇陣或用大弩強槊擊敗魏軍,但進軍速度緩慢。王鎮惡軍由洛陽進抵潼關後,為秦主力守險以阻,檀道濟軍的糧道也為秦將姚紹截斷。晉軍一時處於危境。王、檀向劉裕求援,而劉裕卻為北魏軍牽製,自顧不暇。幸得當地百姓的幫助,潼關晉軍才轉危為安。七月,劉裕擺脫魏軍,進至陝城;前鋒沈田子攻入武關,進屯青泥(今陝西藍田)。八月,劉裕至潼關,與諸部會合。
秦主姚泓為緩解兩麵受敵的危局,謀劃先消滅沈田子軍,再抵禦劉裕,於是率步騎數萬急趨青泥。沈田子軍本為疑軍,不過千餘人,但各自為戰,驍勇異常,數次出擊竟使姚泓敗還長安。此時,王鎮惡突破潼關防線,率師直進,一舉攻陷長安城,姚泓率群臣投降。
九月劉裕率晉軍浩浩蕩蕩地抵達皇城。他想在此稍作休整,經略關中,不料傳來劉穆之病死的消息。劉裕怕朝廷有變,留其十二歲的兒子劉義真率王修、王鎮惡、沈田子等文武共守長安,自己統軍南歸。
劉裕匆匆南歸,為夏主赫連勃勃謀臣王買德窺破心跡。王買德對勃勃說:“劉裕讓其子鎮守長安,自己卻倉猝南還,不為別事,是為了圖謀皇位。他再也無暇顧及關中了。對我們來說,這機會其是太好了!”
劉裕南歸不久,赫連勃勃派軍南斷青泥,東扼潼關,率大軍進攻長安。同恰在此時,留守長安的晉朝文武發生內訌,沈田子殺王鎮惡,王修殺沈田子,劉義真複殺王修。劉裕得到消息,驚恐不已,急令朱齡石鎮守長安,命劉義真速回。劉義真和將士大掠財寶美女,車載南還,為夏軍追及。朱齡石陣亡,劉義真單騎逃逸。長安得而複失,良將勁兵損失駭人。但經過兩次北伐,黃河以南、淮水以北以及漢水上遊的大片地區,為晉據有。
巨大的事功,使劉裕在朝廷的地位顯赫無比。他先後受封相國、宋公,如九錫,位在諸侯王之上。義熙十四年(418)十二月,劉裕令心腹鴆弒安帝,立司馬德文為傀儡皇帝。元熙二年(420),劉裕迫司馬德文禪讓,即皇帝位,國號宋,改元永初,是為武帝。
即位之後,以司馬氏前車之鑒,宋武帝削弱強藩,集權中央。有鑒於荊州屢為禍亂之源,便裁並荊州府的轄區,限製其文武將士的額員。為防止權臣亂政,他特下詔:凡日後大臣外出征討,一律配以朝廷軍隊,軍還交回朝廷。世族隱匿戶囗,減少官府收入,武帝下令整頓戶籍,厲行土斷之法。規定政府所需物資,不準像過去那樣濫行征發,而是派有關官員以錢購買。適當降低農民租稅,廢除苛繁法令,讓百姓在寬鬆的環境中休養生息,發展生產。
魏晉以來,皇室、官府崇尚奢華。由於是孤寒出身,武帝知道稼穡艱辛。他平時清簡寡欲,對珠玉車馬、絲竹女寵十分節製。一次,長史殷仲文陳述朝廷應備音樂,武帝以沒有閑暇、且不會欣賞為由予以推脫。殷仲文勸他經常聽聽自含欣賞,得到的回答是:“正以解而好之,故不習之。”寧州進獻琥珍枕,光潔華麗,武帝聽說琥珀可以療傷,令人搗碎分發將士。他平時穿著十分隨便,連齒木屐,普通裙帽;住處用土屏風、布燈籠、麻繩拂。為了警誡後人,他在宮中懸掛了少兒時使用過的農具、補綴多層的破棉襖。後來,他的孫子孝武帝劉駿看見這些東西,譏誚祖上是“鄉巴佬”。永初三年(422)五月,武帝病逝,時年六十。