十二年,高祖将北伐,转镇恶为咨议参军,行龙骧将军,领前锋。将发,前将军刘穆之见镇恶于积弩堂,谓之曰:"公愍此遗黎,志荡逋逆。昔晋文王委伐蜀于邓艾,今亦委卿以关中,想勉建大功,勿孤此授。"镇恶曰:"不克咸阳,誓不复济江而还也!"镇恶入贼境,战无不捷,邵陵、许昌,望风奔散;破虎牢及柏谷坞,斩贼帅赵玄。军次洛阳,伪陈留公姚洸归顺。进次渑池,造故人李方家,升堂见母,厚加酬赉,即版授方为渑池令。遣司马毛德祖攻伪弘农太守尹雅于蠡城,生擒之。仍行弘农太守。方轨长驱,径据潼关。伪大将军姚绍率大众拒崄,深沟高垒以自固。镇恶悬军远入,转输不充,与贼相持久,将士乏食,乃亲到弘农督上民租,百姓竞送义粟,军食复振。
初,高祖与镇恶等期,若克洛阳,须大军至,未可轻前。既而镇恶等径向潼关,为绍所拒不得进,而军又乏食,驰告高祖,求遣粮援。时高祖沿河,索虏屯据河岸,军不得前。高祖呼所遣人开舫北户,指河上虏示之曰:"我语令勿进,而轻佻深入。岸上如此,何由得遣军?"镇恶既得义租,绍又病死,伪抚军姚赞代绍守险,众力犹盛。高祖至湖城,赞引退。
大军次潼关,谋进取之计,镇恶请率水军自河入渭。伪镇北将军姚强屯兵泾上,镇恶遣毛德祖击破之,直至渭桥。镇恶所乘皆蒙冲小舰,行船者悉在舰内,羌见舰溯渭而进,舰外不见有乘行船人,北土素无舟楫,莫不惊惋,咸谓为神。镇恶既至,令将士食毕,便弃船登岸。渭水流急,倏忽间,诸舰悉逐流去。时姚泓屯军在长安城下,犹数万人。镇恶抚慰士卒曰:"卿诸人并家在江南,此是长安城北门外,去家万里,而舫乘衣粮,并已逐流去,岂复有求生之计邪!唯宜死战,可以立大功,不然,则无遗类矣。"乃身先士卒,众亦知无复退路,莫不腾踊争先。泓众一时奔溃,即陷长安城。泓挺身逃走,明日,率妻子归降。城内夷、晋六万余户,镇恶宣扬国恩,抚尉初附,号令严肃,百姓安堵。
高祖将至,镇恶于灞上奉迎。高祖劳之曰:"成吾霸业者,真卿也。"镇恶再拜谢曰:"此明公之威,诸将之力,镇恶何功之有焉!"高祖笑曰:"卿欲学冯异也。"是时关中丰全,仓库殷积,镇恶极意收敛,子女玉帛,不可胜计。高祖以其功大,不问也。进号征虏将军。时有白高祖以镇恶既克长安,藏姚泓伪辇,为有异志。高祖密遣人觇辇所在,泓辇饰以金银,镇恶悉剔取,而弃辇于垣侧。高祖闻之,乃安。
高祖留第二子桂阳公义真为安西将军、雍秦二州刺史,镇长安。镇恶以本号领安西司马、冯翊太守,委以捍御之任。时西虏佛佛强盛,姚兴世侵扰北边,破军杀将非一。高祖既至长安,佛佛畏惮不敢动。及大军东还,便寇逼北地。义真遣中兵参军沈田子距之。虏甚盛,田子屯刘回堡,遣使还报镇恶。镇恶对田子使,谓长史王修曰:"公以十岁儿付吾等,当各思竭力,而拥兵不进,寇虏何由得平!"使还,具说镇恶言,田子素与镇恶不协,至是益激怒。二人常有相图志,彼此每相防疑。镇恶率军出北地,为田子所杀,事在《序传》。时年四十六。田子又于镇恶营内,杀镇恶兄基、弟鸿、遵、渊及从弟昭、朗、弘,凡七人。是岁,十四年正月十五日也。
高祖表曰:"故安西司马、征虏将军王镇恶,志节亮直,机略明举。自策名州府,屡著诚绩。荆南遘衅,势据上流,难兴强蕃,忧兼内侮。镇恶轻舟先迈,神兵电临,旰食之虞,一朝雾散。及王师西伐,有事中原,长驱洛阳,肃清湖、陕。入渭之捷,指麾无前,遂廓定咸阳,俘执伪后,克成之效,莫与为畴,实捍城所寄,国之方召也。近北虏游魂,寇掠渭北,统率众军,曜威扑讨。贼既还奔,还次泾上,故龙骧将军沈田子忽发狂易,奄加刃害,忠勋未究,受祸不图,痛惜兼至,惋悼无已,伏惟圣怀,为之伤恻。田子狂悖,即已备宪。镇恶诚著艰难,勋参前烈,殊绩未酬,宜蒙追宠,愿敕有司,议其褒赠。"于是追赠左将军、青州刺史。高祖受命,追封龙阳县侯,食邑千五百户,谥曰壮侯。配食高祖庙廷。
子灵福嗣,位至南平王铄右军咨议参军。灵福卒,子述祖嗣。述祖卒,子睿嗣。齐受禅,国除。
镇恶弟康,留关中,及高祖北伐,镇恶为前锋,康逃匿田舍。镇恶次潼关,康将家奔之,高祖板为彭城公前将军行参军。镇恶被害,康逃藏得免,携家出洛阳,到彭城,归高祖。即以康为相国行参军。求还洛阳视母,寻值关、陕不守,康与长安徙民张旰丑、刘云等唱集义徒,得百许人,驱率邑郭侨户七百余家,共保金墉城,为守战之备。时有一人邵平,率部曲及并州乞活一千余户屯城南,迎亡命司马文荣为主。又有亡命司马道恭自东垣率三千人屯城西,亡命司马顺明五千人屯陵云台。顺明遣刺杀文荣,平复推顺明为主。又有司马楚之屯柏谷坞,索虏野坂戍主黑弰公游骑在芒上,攻逼交至,康坚守六旬。