这时,固守长安两年之久的白真终被白成、冉提攻破,只得率残军东撤。
于香城遇到王镇恶军,两军合兵一处,继续西向,逼近长安。
这边才攻入长安的白成还没有高兴多久,就得知晋军已经抵近灞上。
于是急忙移军灞上,同时以刘江、阳序合兵守卫泾上,迎击王镇恶、白真。
王镇恶命将军毛德祖击败夏军,刘江战死,阳序逃回长安。
八月十八日
晋将沈田子攻破武关,进驻青泥,距离长安只有十数里之远。
白成为缓解两面受敌的危局,谋划先消灭沈田子军,再抵御刘裕,于是率步骑数万急趋青泥。
沈田子军本为疑军,不过千余人,但各自为战,又多是北府兵老卒,骁勇异常,数次出击竟使白成败还长安。
此时,王镇恶派白真从潼关后方攻打,与刘裕前后夹击,攻破定城,进而潼关告破。
王镇恶得以率师直进,一举攻陷长安。
白成只得领着残部,退往天水,与冉提合兵一处,固守待援。
十一月
刘裕率军抵达长安,想在此稍作休整,继续经略关中,击败白成、冉提,收复关陇。
不料,朝廷传来了刘穆之病死的消息,刘裕汇集在长安的文武将佐讨论,大部分人不赞成继续北伐。
刘裕遂留自己十二岁的儿子刘义真以及王修、王镇恶、沈田子等文武共守长安,自己带着白真、白种等人统军南归。
不过刘裕此举,却被此时自立为王的胡夏之主赫连勃勃的谋臣王买德窥破心迹。
在刘裕南归不久后,赫连勃勃派军南断青泥,东扼潼关,率大军进攻长安。
此时,留守长安的晋朝文武充分展现了晋朝风度,发生内讧,沈田子杀王镇恶,王修杀沈田子,刘义真复杀王修。
刘裕得到消息,惊恐不已,急令朱龄石镇守长安,并命刘义真速回。
刘义真和将士大掠长安的财宝美女,车载南还,为胡夏军追及。
朱龄石阵亡,刘义真单骑逃逸。
长安虽得而复失,良将劲兵损失颇多,但潼关以东收复的部分关中之地和整个河南地区仍然得到刘裕的重兵扼守。
经过这次北伐,黄河以南、淮水以北以及汉水上游的大片地区,为刘裕据有。
刘裕在东晋的威望如日中天。
巨大的军功,使刘裕在朝廷的地位显赫无比。
天赐元年(始隆二十年)
刘裕同意接受相国、总百揆、扬州牧的官衔,以十郡建“宋国”,受封为宋公,并受九锡殊礼。
十二月
刘裕指派中书侍郎王韶之缢杀晋安帝司马德宗,立其弟、琅邪王司马德文为帝。
天赐二年
十月
刘裕晋爵为宋王,宋国又增加十郡食邑。
同年末,又获加皇帝规格的十二旒冕、天子旌旗等一系列殊礼。
天赐三年
六月
刘裕代晋称帝,降封司马德文为零陵王,东晋灭亡。
他改国号为“宋”,改元永初。
即位之后,刘裕以司马氏为前车之鉴,又学以北夏,削弱强藩,集权中央。
有鉴于荆州屡为祸乱之源,便裁并荆州辖区,限制其将、吏的额员。
又为防止权臣乱政,他特下诏:凡日后大臣外出征讨,一律配以朝廷军队,军还则交回朝廷,不得专任。