姚兴去世,后秦发生内乱,关中**,刘裕大喜,认为这是夺取关中、收复失地的好机会。义熙十二年(416)三月,刘裕向朝廷上表,要求北伐后秦。朝廷任命刘裕为中外大都督,兼司、豫二州刺史,任命刘裕的长子刘义符为徐、兖二州刺史。琅琊王司马德文要求打前站,先到洛阳去整修皇家陵墓,刘裕同意了。
大军将要出征,恰巧这时候宁州刺史派人给刘裕送来了一个琥珀枕头。琥珀枕头可以促进血液循环,增进睡眠质量,同时琥珀又能散瘀止血,是很好的医治刀伤的药材,刘裕便没有独享,而是命人把琥珀枕头弄碎,分发给各位将士,让他们战时使用。
刘裕任命刘义符为中军将军、监太尉留府事,刘穆之为左仆射,兼任监军、中军二府军司,入住东府,总理朝中事务,太尉左司马徐羡之为刘穆之的副手。命左将军朱龄石负责宫中的安全保卫工作,徐州刺史刘怀慎守卫京师,扬州别驾从事史张裕任留州事。
刘穆之处理实际工作的能力非常强,往往能化繁为简,在谈笑中就能批阅文件,而且不会出现错误。他高效率地处理完公务,还能利用闲暇时间读书练字,甚至校订文书中的错误。刘穆之年轻时穷得没饭吃,对此他刻骨铭心,现在有条件了,每次吃饭的时候都喜欢摆个大桌子,邀十几个人一同用餐。
义熙十二年(416)八月十二日,刘裕率大军从建康启程。他命龙骧将军王镇恶、冠军将军檀道济率步兵从淮淝攻打许昌、洛阳,新野太守朱超石、宁朔将军胡藩攻打阳城,振武将军沈田子、建威将军傅弘之攻打武关,建武将军沈林子、彭城内史刘遵考率水军攻打石门,从汴水入黄河。又命冀州刺史王仲德率前锋部队疏通钜野泽(当年桓温挖的),使之可以入黄河。刘穆之对王镇恶说道:“元帅对你的期望很高,你要不负所望!”王镇恶说道:“不收复关中,誓不回来!”
刘裕率军抵达彭城,朝廷又任命他兼任徐州刺史,任命王玄谟为从事史(参谋官)。
王镇恶、檀道济率军进入后秦领土,他们势如破竹,连连告捷。慑于晋军的强大威势,后秦将领王苟生献出漆丘,投降了王镇恶,徐州刺史姚掌也献出项城,投降了檀道济,其他的郡县也纷纷投降。新蔡太守董遵不识时务,不肯投降,被檀道济率军打败,杀掉了。晋军继续推进,又攻陷了许昌,生擒颍川太守姚垣及大将杨业。
沈林子率军从汴水进入黄河,董神虎率一千多民众前来投靠,他们一起攻克了仓垣,后秦兖州刺史韦华投降,这时候董神虎却擅自离开部队,沈林子把他抓获后斩首。
大军压境,后秦内部一片慌乱,东平公姚绍建议道:“我们不如放弃安定,把人口迁往京畿地区,从中挑选精兵。如果我们两线作战,兵力分散,如何能应对得了?事情紧急,请陛下尽快决定。”
左仆射梁喜说道:“齐公姚恢威名远播,有他镇守安定,赫连勃勃肯定无法攻克,如果放弃安定,赫连勃勃就会继续向国内推进。现在,我们的兵马足以对抗晋国,我们不应该削弱安定防线。”
姚泓觉得梁喜的话很有道理,同意他的意见。
王仲德率水军进入黄河,逼近滑台。这时候的滑台属于北魏,北魏兖州刺史尉建以为王仲德是来夺取滑台的,被吓破了胆,弃城而逃,王仲德也就趁机率军进入城中。拓跋嗣得到报告,派叔孙建、公孙表率军渡过黄河南下,尉建过来投奔,他们杀死了尉建,把尸体丢进黄河。拓跋嗣派叔孙建质问刘裕为什么入侵,刘裕赶忙道歉:“我们只不过是想收复故都,祭扫先帝陵墓,希望贵国借路一用,绝不敢对贵国有不利行动。”拓跋嗣仍不放心,派大将于栗磾在黄河岸边修筑营垒,防备晋军。
后秦的阳城和荥阳又投降了沈林子和朱超石,晋军进逼成皋。这时候防守洛阳的后秦将领为征南将军陈留公姚洸,他急忙派人向姚泓求救,姚泓命越骑校尉阎生率三千铁骑、武卫将军姚益男率一万步兵前去救援,又命并州牧姚懿南下驻军陕津,作为后援。
檀道济有勇有谋,之前他用重金收买了姚洸的司马姚禹,让他作为内应,见机行事。此时,后秦的宁朔将军赵玄对姚洸说道:“如今晋军声势浩大,我们势单力孤,我认为上策是严守金墉城,等待援军。”姚禹不同意,他对姚洸说道:“将军是一方大员,谋略超人,如果守城不出,恐怕朝廷会怪罪下来。”姚洸一听,认为姚禹说得太对了,自己不能做缩头乌龟,于是派赵玄率领一千人马南下驻守柏谷坞,广武将军石无讳东下防守巩城。赵玄都急哭了,但也无济于事。
成皋、虎牢的守将相继投降了晋军,檀道济**,石无讳走到半路,吓得又跑了回去。晋龙骧司马毛德祖和赵玄在柏谷坞大战,赵玄不敌,身中十多刀,大叫一声跌落马下。赵玄的司马蹇鉴冒死护住他,让他快走,赵玄说道:“我已经走不了了,你快走吧!”蹇鉴哭着说道:“你不走,我也不能独活!”这时候晋军一拥而上,把他们都杀死了。
姚禹趁夜翻过城墙,前去投奔檀道济。十月二十日,檀道济率大军来到洛阳城下,姚洸一看这仗没法打了,便出城投降了檀道济。檀道济的手下抓获了四千多个羌人,有将军建议应该把他们全部坑杀,然后建起骷髅台,檀道济说道:“不能这么鲁莽,目前需要安抚他们,争取人心,为获得更大的胜利做准备。”于是把他们全部放走了。见此情况,附近不少胡人和汉人都来归降。
阎生和姚益男走到半路,听说洛阳已经被晋军攻破,不敢再前行。
听说洛阳被收复,建康的满朝文武都激动地流下了热泪,司马德宗下令,命司空高密王司马恢之代表朝廷,前去洛阳整修并祭拜皇家陵墓。刘裕命冠军将军毛脩之为河南、河内二郡太守,镇守洛阳。
刘裕一边打仗收复失地,一边也没有忘记加快篡位的步伐。他派左长史王弘回到建康,暗示朝廷,应该给刘裕加九锡。这时候,在朝中处理留守事务的是刘穆之,他此时明白了,自己虽然受到刘裕的重视和重用,但还不是刘裕的心腹,加九锡这样的事情刘裕不会交给他做,而是要假手他人。刘穆之感到非常失落,非常苦闷,竟然生病卧床了。
十二月二十九日,安帝司马德宗下诏,任命刘裕为相国、扬州牧,总领百官,封宋公,采邑十个郡,加九锡,位次在各位诸侯王之上,原任官职一律保留。刘裕假意推辞不受。
大敌当前,后秦内部又出了问题。并州牧姚懿的司马孙畅劝说他杀到长安,处死东平公姚绍,废黜姚泓,然后自己称帝。姚懿一听大喜,立即把仓库里的粮食发给百姓,笼络人心。左常侍张敞、侍郎左雅却劝姚懿道:“殿下是圣上的亲弟弟,而且现在大敌当前,城池沦陷,朝廷危如累卵,您不能这么做。”姚懿一听暴怒,命人用鞭子把他们打死了。
姚泓得到禀告,找姚绍商议对策,姚绍说道:“这一定是孙畅的主意,现在应该立即征召孙畅,然后派抚军将军姚赞驻守陕城。我会去潼关指挥,如果孙畅前来,就命姚懿率军抵抗晋军,如果孙畅不来,你就派兵讨伐他们。”姚泓同意,道:“就按叔叔说的做。”于是他派姚赞和冠军将军司马国璠、建议将军虵(shé)玄驻守陕津,武卫将军驻守潼关。
孙畅接到诏令,根本没理,继续鼓动姚懿自称皇帝,还向各州郡发布了文告,意图争取支持者。姚懿准备调用匈奴堡的粮食,但守卫匈奴堡的宁东将军姚成都予以拒绝。姚懿很生气,派骁骑将军王国带领几百勇士进攻匈奴堡,结果都被姚成都生擒。
接到姚懿文告的不少,但只有临晋数千人响应他,姚成都便率军攻打临晋,攻破了城池。这时候,蒲阪的百姓过纯率领数人拿起武器,包围了姚懿府,把他困在府中,姚绍趁机率军进入蒲阪,擒获了姚懿,诛杀了孙畅等人。
义熙十三年(417)正月,面对危局,姚泓束手无策,和众文武以泪相对。这时候又出乱子了,征北将军齐公姚恢率三万多人起兵从北雍州出发,兵发长安,声称要清君侧,杨威将军姜纪也率军投降了姚恢。姚恢击败镇西将军姚谌,攻克了郿城,一时间长安城内人心惶惶。姚泓派人骑快马召姚绍回军救援京师,另派姚裕及辅国将军胡翼度驻防沣水。扶风太守姚儁也投降了姚恢。
姚绍紧急回师,和姚恢军在灵台对峙。姚赞也率主力回援京师,命宁朔将军尹雅为弘农郡太守,防守潼关。看到朝廷军队势大,姚恢的大将齐黄投降。姚恢被姚绍和姚赞夹击,大败,他和他的三个弟弟都被杀死。