北伐大军分为四路,水陆并进。一路由王镇恶、檀道济率领步兵自淮、淝进取许昌、洛阳。一路由沈林子、刘遵考率领水军, 与王镇恶等步兵配合,由汴水经荥阳石门入河。一路由沈田子、 傅弘之率领,径趋武关。一路由王仲德率领水军,由恒公渎自淮人泗,自泗入清、济,自清入河。后来刘裕自己统率的大军主力, 也是走王仲德走的这一条路。
檀道济、王镇恶这一路,推进得非常迅速,所至诸城戍皆望风归降;接连攻下项城、许昌、成皋(今河南荥阳上街镇),姚秦洛阳守将姚光开城出降。晋军乃占领洛阳,前锋进抵潼关。
王仲德这一路,由水道自巨野泽经清河折人黄河以后,自然要威胁到北魏在黄河南岸的唯一桥头堡滑台(今河南滑县东南)。北魏滑台镇将尉建没有等到晋军进攻,仓皇放弃滑台,渡河遁逃。九月,晋军进入滑台。公元417年初,刘裕也从彭城亲统大军从水道自准、泗入清河,又自清河经四渎口(今山东长清西南)入黄河,溯流西上。为了确保行军的安全,刘裕任命左将军向弥为北青州刺史,留成碥傲(今山东茌平西南),加强了黄河南岸这个战略要点的防务。这时北魏在黄河北岸集结了十万军队。晋军主力沿黄河进军时,北魏派了几千兵士,在隔岸进行骚扰。刘裕的“军人于南岸牵百丈(百丈是拉船的牵绳),风水迅急,有漂渡北岸者,辄为魏人所杀略。裕遣军击之,裁登岸则走, 退则复来”(《资治通鉴》晋安帝义熙十三年)。刘裕无可奈何,最后派自己的卫队奋勇渡河,在黄河北岸建立了两端抱河的却月阵,并且动员了二千多劲勇,带了大弩百张,大锤及稍千余,奋勇击败魏军。魏军退至畔城(在今山东聊城境),晋军追击,又获全胜,东晋大军主力终于顺利地自河道到达洛阳。
公元417年三月,刘裕到达洛阳,这时前锋王镇恶、檀道济、 沈林子等军已进抵潼关。于是重新作了部署,分两路进攻关中, 一路人武关(今陕西丹凤东南),包抄长安的后路;一路从潼关直取长安。