义熙十二年(公元416年)一月,后秦主姚兴死,姚泓继位,内部叛乱迭起,政权不稳,刘裕认为这是灭亡后秦的良机。八月,刘裕亲率大军分四路北伐。九月,扺达彭城。龙骧将军王镇恶、冠军将军檀道济领兵由淮、淝转向许、洛,后秦诸屯守皆望风降附,晋军进展神速。十月,王镇恶军占领洛阳。次年正月,刘裕留其子刘义隆镇守彭城,自率大军北上。此时北魏派十万重兵驻守河北,并以游骑骚扰晋军。刘裕在行军中,虽常设奇阵或用大弩强槊击败魏军,但进军速度缓慢。王镇恶军由洛阳进抵潼关后,为秦主力守险以阻,檀道济军的粮道也为秦将姚绍截断。晋军一时处于危境,幸得当地百姓的帮助,潼关晋军才转危为安。七月,刘裕摆脱魏军,进至陕城;前锋沈田子攻入武关,进屯青泥(今陕西蓝田)。八月,刘裕至潼关,与诸部会合。秦主姚泓为缓解两面受敌的危局,谋划先消灭沈田子军,再抵御刘裕,于是率步骑数万急趋青泥。沈田子军本为疑军,不过千余人,但各自为战,骁勇异常,数次出击竟使姚泓败还长安。此时,王镇恶突破潼关防线,率师直进,一举攻陷长安城,姚泓率群臣投降。九月刘裕率晋军浩浩荡荡地抵达皇城。他想在此稍作休整,经略关中,不料传来刘穆之病死的消息。刘裕怕朝廷有变,留其十二岁的儿子刘义真率王修、王镇恶、沈田子等共守长安,自己统军南归。
刘裕南归不久,夏主赫连勃勃派军南断青泥,东扼潼关,率大军进攻长安。恰在此时,留守长安的晋朝大将发生内讧,沈田子杀王镇恶,王修杀沈田子,刘义真复杀王修。刘裕急令朱龄石镇守长安,命刘义真速回。刘义真和将士大掠财宝美女,车载南还,为夏军追及。朱龄石阵亡,刘义真单骑逃逸。长安得而复失,良将劲兵损失骇人。但经过两次北伐,黄河以南、淮水以北以及汉水上游的大片地区,为晋所有。
巨大的战功,使刘裕位在诸侯王之上。义熙十四年(公元418年)十二月,刘裕鸩弑安帝,立司马德文为傀儡皇帝。元熙二年(公元420年),刘裕迫司马德文禅让,即皇帝位,国号宋,改元永初,是为武帝。
即位之后,以司马氏前车之鉴,宋武帝削弱强藩,集权中央。裁并荆州府的辖区,限制其文武将士的额员。为防止权臣乱政,他特下诏:凡日后大臣外出征讨,一律配以朝廷军队,军还交回朝廷。为了扩大官府收入,武帝下令整顿户籍,厉行土断之法。适当降低农民租税,废除苛繁法令,让百姓在宽松的环境中休养生息,发展生产。
魏晋以来,皇室、官府崇尚奢华。由于是孤寒出身,武帝知道稼穑艰辛。他平时清简寡欲,对珠玉车马、丝竹女宠十分节制。他平时穿着随便,连齿木屐,普通裙帽;住处用土屏风、布灯笼、麻绳拂。为了警诫后人,他在宫中悬挂了少儿时使用过的农具、补缀多层的破棉袄。后来,他的孙子孝武帝刘骏看见这些东西,讥诮祖上是“乡巴佬”。
永初三年(公元422年)五月,武帝病逝,时年六十。