义熙十三年正月,刘裕留其子刘义隆镇守彭城,自率大军北上。此时北魏派十万重兵驻守河北,并以游骑骚扰晋军。刘裕的军队设奇阵或用大弩强槊击败魏军,是魏军丧魂落胆,但因此行军速度缓慢。四月中旬,刘裕才到达洛阳。七月,刘裕全面击退魏军,河南全境被收复。八月,刘裕至潼关,与诸部会合,商议军事方略,决定王镇恶率水军从黄河入渭水,逼向长安。另一路军沈田子由武关趣青泥,姚泓为缓解两面受敌的危局谋划先消灭沈田子军,再抵御刘裕,于是率步骑数万急趋青泥。沈田子军不过千余人,却骁勇异常,人自为战,数次出击竟使姚泓败还长安。王镇恶突破潼关防线,一举攻陷长安,姚泓率群臣投降,被执送建康斩首。刘裕亲自前往拜谒汉高帝陵,大会文武于未央殿,恢复汉家旧仪。
到此刘裕经营中原的大业基本完成,关中、河南都收入刘裕的囊中。但就在此时,从京中传来一个噩耗,为刘裕留守后方的刘穆之死了!刘穆之是刘裕的腹心将领,听到刘穆之的死讯,刘裕顿时心神无主,无心在长安待下去,做好了返回建康的打算。十二月,刘裕任命自己的儿子桂阳公义真为安西将军、雍州刺史,留下腹心将佐王镇恶、沈田子、傅弘之、毛修之、王修等人辅佐小儿成大业,自己返回建康,以便重掌东晋政权。
刘裕走后,在长安的晋军成了强敌环伺的所在,周围有许多胡人政权,特别是北有虎视眈眈的匈奴夏国主赫连勃勃。不久,关中便发生严重的内乱。沈田子怀疑王镇恶有反心,袭杀王镇恶。之后王修杀沈田子,刘义真复杀王修,使晋军的实力严重削弱。晋军被赫连勃勃的夏军打得大败,刘义真匍匐草莽南逃,关中全部覆没。
关中的得而复失,是历史的一大遗憾。司马光编撰《资治通鉴》时不禁感叹:"惜乎!百年之寇,千里之士,得之艰难,失之造次,使丰、鄗之都复输寇手。"