闰十月初七日,魏太武帝大军进至枋头(今河南浚县西,位置在滑台以西古黄河北岸),立即派殿中尚书长孙真率骑兵5000自石济津渡过黄河,切断宋军退路,以防止王玄谟军逃跑。又派关内侯陆真乘夜率数人潜入滑台城,抚慰守城将士,并登城察看宋军动静,然后连夜回营还报太武帝。次日,太武帝亲临前线,率大军渡河,直逼宋军。魏军众号百万,鞞鼓之声,震动天地,军势甚盛。王玄谟见北魏大军逼近,惊慌失措,弃军逃跑。宋军失去主将,阵势大乱。魏军乘势进攻,斩首万余级,缴获军资器械无数。太武帝进驻东平(今山东东平东)。魏军遂以缴获宋军的战船,用铁索相连,在黄河上组成3道封锁线,企图截断滑台以西垣护之率领的宋军。王玄谟败逃,顾不上告知垣护之,因而垣护之得知宋军败退时,退路已被魏军截断。垣护之急命部下乘河水迅猛,顺流而下,如遇拦截铁索便以长斧砍断。在垣护之率领下,宋军将士奋勇作战,全军冲破封锁线退还,仅损失一艘战船。
王玄谟狼狈逃回碻磝,手下将士死亡殆尽。东路军主帅萧斌大怒,欲将王玄谟斩首,经太子步兵校尉沈庆之力劝乃止。萧斌见前锋已败,准备亲率主力固守矿礅。沈庆之劝他说:“夫深入寇境,规求所欲,退败如此,何可久住。今青、冀虚弱,而坐守孤城,若虏众东过,青东非国家有也”。正在这时,宋文帝诏书至,不许萧斌后退。沈庆之仍坚持退军说;“阃外之事,将所得专,诏从远来,事势已异”。于是萧斌重新部署诸军,以王玄谟守镐礅,申坦、垣护之守清口(今山东东平西,为清水入黄河之口),自率诸军还驻历城(今山东济南西)。这时东路军的失败,已成定局。此后,总统北伐军事的太尉刘义恭以镐礅孤城,必不可守,召令王玄谟退军,碡礅落入魏军手中。