王镇恶,北海剧县人。祖父王猛,在苻坚那里做官,兼任将相。父亲王休为河东太守。王镇恶是五月生,家里人因为风俗的忌讳,想让他出家去继承疏房远族。王猛说:“这不是一个平常的孩子。过去孟尝君在恶月出生而做了齐国的宰相,这孩子也将要使我们家门兴旺的。”所以名字叫镇恶。十三岁时苻氏失败,寄居在渑池人李方家吃饭。李方对他招待得很好,他对李方说:“如果遇到一个英雄的君主,邀取到万户侯,一定要厚厚地相报。”李方说:“您是丞相的孙子,人材这么出众,何愁不会富贵,到时候希望能聘我为本县的县令就足够了。”
后来随着叔父王曜归顺了晋朝,客居在荆州,很读了一些诸子的兵书,喜欢谈论军国大事,骑射不是他的特长,但是却善于果断地经营国家大事。宋武帝讨伐广固,王镇恶当时做天门郡临澧县令。有人把他推荐给武帝,武帝召见,和他交谈,很惊异,于是留他住下。早晨对诸位下属官员说:“王镇恶是王猛的孙子,正是所谓将门有将。”就把他安排在了前部的贼曹。因为抵抗卢循有功,封为博陆县五等子。
武帝计划讨伐刘毅,王镇恶说:“您如果要对付西楚,请拨给我一百只大船做前驱。”等到进行西讨,转调王镇恶为参军事,让他率领龙骧将军蒯恩的一百条大船在前面出发。王镇恶接受了命令,便昼夜兼程前进,声称是刘兖州西上。刘毅认为是真的,不知道却将要遭到袭击。
王镇恶离江陵城二十里,弃船登陆,蒯恩的军队在前面,王镇恶紧接在后头,每条大船上各留一二人,对着大船的岸上竖旗安鼓,告诉所留下的人说:“估计我们将到城下,便长久地戒严,让人看起来好像后面还有大军的样子。又分出一支军队留在后面,让他们烧掉江津的船只。王镇恶径直向前袭击城池,渡口守卫和百姓们都说是刘藩的军队真的到来了,心情安然毫不怀疑。将到城中,碰上了刘毅的重要将领朱显之驰马向前问刘藩在什么地方,军人回答说“在后面。”等到了军队的后面却不见刘藩,又望见江津的船舰被烧,而鼓声很大,知道不是刘藩到来,便飞马去告诉刘毅,让他关闭城门。王镇恶也驰马进入城内,便趁风放火,烧了大城的南门和东门。又派人拿上诏书以及赦免文书和武帝的手书共三封交给刘毅,刘毅都烧掉不看。城内牙城中的人也不信武帝亲自前来。等到短兵接战,王镇恶的军人和刘毅手下的将领有的是父兄子弟中表亲戚,他们且战且说,知道武帝就在后面,军人的情绪便离散懈怠了。
起初,刘毅平时所骑的马隔在了城外无法进来,他仓促之间没有马骑,便让人到他儿子刘肃那里去要马,刘肃不给。朱显之对他说:“别人要取你父亲的性命,而你却吝惜一匹马,你逃走想逃到什么地方去呢?”夺过马来给了刘毅,从大城东门出去,逃奔至牛牧佛寺,自缢而死。王镇恶身上中了五箭,手中所拿的长槊破折。江陵平定以后二十天,大军才到,王镇恶因战功封为汉寿县子。
后来武帝北伐,王镇恶担任镇西咨议,做龙骧将军,兼任前锋。将要出发,前将军刘穆之对他说:“从前晋文王把蜀地委托给邓艾,现在也要把关中委托给您了,希望您要好好努力。”王镇恶说:“我们借托风云,并且承蒙提拔,现在咸陽如不攻克,誓不再渡长江返回。三秦如果平定,而主公的九锡封赏不到,也就是您的责任了。”
王镇恶进入了贼军的辖地,战无不捷,攻破了虎牢关和柏谷坞。进军驻扎在渑池,到了故友李方家,进了堂屋见了他的母亲,丰厚地加以酬谢赏赐,当即授职李方担任渑池令。两车并行直接占据了潼关,将士缺乏食物,他便亲自到弘农去督促缴纳粮租。百姓们争着来送义谷,军粮重又丰足起来。
起初,武帝与王镇恶等人互相约定,如果攻克洛陽,必须等待大军,不可轻率前进。随后王镇恶等人到了潼关,被伪大将军姚绍所抵抗,不能前进,驰马报告武帝请求粮食和支援。当时武帝的军队进入黄河,魏军屯驻在河岸,军队不能前进。武帝叫过来被差遣的人,打开船上北面的门,指着河上的军队让他看说:“我说不要深入前进嘛,岸上是这个样子,怎么能够派遣军队!”王镇恶既然得到了义租,姚绍又病死,伪抚军将军姚赞代替姚绍守险,军力仍然很强。武帝到了湖城,姚赞撤退。
大军驻在潼关,谋划进攻夺取的计策,王镇恶自己请求率领水军从黄河进入渭河,直到渭桥。王镇恶所乘的都是蒙有牛皮的小舰,划船的人都在舰内,溯渭水前进,舰外看不见有划船的人。北方平时没有舟船,人们见了无不惊诧,以为是神怪。王镇恶到了以后,让将士吃过饭,便弃船登岸。渭水流水很急,那些舰船都随着河水流走,王镇恶抚慰士卒说:“这里是长安城北门外,离家万里,而船只衣粮全都随水流去,惟有死战,可以建立大功。”于是身先士卒,一直攻下了长安城。城内六万多户,王镇恶抚慰归附的人,号令严肃。在灞上迎接武帝,武帝慰劳他说:“成就我的大业的,真是爱卿啊。”王镇恶道谢说:“这是依靠明公您的威势,各位将官的力量。”武帝笑着说:“您是要学冯异啊?”
当时关中丰饶富有,王镇恶心性贪婪,收敛美女玉帛不可胜数,武帝因为他的功大而不管。当时有人告诉武帝说王镇恶收藏了姚泓的伪辇,有异志,武帝派人去窥视,知道王镇恶是剔取装饰在辇上的金银,而把辇丢弃在墙边,武帝才安心了。
武帝留下第二个儿子桂陽公刘义真为安西将军、秦雍二州刺史,镇守长安。王镇恶担任征虏将军兼安西司马、冯翊太守,委托给他捍卫的责任。
等大军东还,赫连勃勃逼迫北地,刘义真派遣中兵参军沈田子抵御他。敌军十分气盛,沈田子后退屯驻在刘因堡,派遣使者回来报告给王镇恶。王镇恶当着沈田子的使者的面对安西长史王修说:“您把个十岁的儿童交给我们,就应当同心尽力,现在却拥兵不进,贼军怎么能够扫平?”使者回去报告了,沈田子非常害怕。
王猛给苻坚做宰相,北国人把他比做诸葛亮。入关的功劳,又以王镇恶为首,当时的谈论者都非常害怕。沈田子的..柳之捷,威震长安,从而和王镇恶争功。武帝即将归去,留下沈田子和王镇恶,私下里对沈田子说:“钟会不能随心作乱,是因为有卫馞等人的缘故。常言说:‘猛兽不如群狐。’你们十几个人有什么惧怕王镇恶的!”所以他们二人常常互相都有猜忌。当时王镇恶驻军在泾水上,和沈田子一起聚会在傅弘之的军垒中,沈田子摒退其他人,于是就在军幕中将他斩首,另外还斩了王镇恶的哥哥王基、弟弟王鸿、王遵、王深,堂弟王昭、王朗、王弘,共七个人。傅弘之赶去告诉了刘义真,刘义真率领王智、王修披上盔甲登上横门来观察形势的变化。不一会沈田子到了,说王镇恶谋反。王修抓住了沈田子,以擅自杀人的罪名把他斩了。这一年,是义熙十四年正月十五日。追赠王镇恶为左将军、青州刺史。等武帝接受天命登了帝位,追封他为龙陽县侯,谥号为壮。传封国到曾孙王睿,齐王接受禅让,封国被废除。