王镇恶是名臣王猛之孙,南朝宋北海剧人。因他生在五月,家人根据当时的习俗,以为不吉,想把他过继给远房亲戚,王猛得知后说:“此儿不凡。从前孟尝君也是出生在恶月,却做了齐相,我相信这孩子将来一定能够干出一番大事业。”对孩子寄予厚望的王猛,就给他取了个名字——“镇恶”。
镇恶喜欢谈论军国大事,他熟读了诸子兵书,虽不善骑射,却很有谋略,做事果断。
公元409年,刘裕征伐广固之时,镇恶正好担任天门郡临澧县县令。有人把镇恶推荐给了刘裕,刘裕派人把王镇恶召来,交谈之后,发现他确实不是一般的人物,于是请他留宿。第二天一早,刘裕对部下说:“镇恶是王猛的孙子,真是将门出将才。”随即委以官职。
公元412年,晋太尉中书监刘裕谋划征讨原来统管荆、宁、秦、雍诸州军事的东晋将领刘毅,镇恶说:“如果将军想征讨刘毅,请允许我率领一百只船为你打头阵。”刘裕率军讨伐刘毅,他任命王镇恶为参军事,并派遣他率领龙骧将军蒯恩统辖的一百条船先行。镇恶接到命令,随即日夜兼程,慌称是刘藩前往江陵看望其兄刘毅。刘毅信以为真,没有进行有效的布防。
在距离江陵仅二十里时,镇恶就离船登陆了。蒯恩率兵在前开路,接着是镇恶所部,每条船上只留一两个人看守。镇恶又让人在船的对岸安置战鼓,并插上若干大旗,然后吩咐看守人说:“你们估计我快要到江陵的时候,便实行戒严,造成好像后面有大军即将到来的样子。”他又派一部分军队在后,叫他们去焚烧江津的船只。镇恶则直接前去袭击江陵。
由于事先施行了疑兵的计策,津戍及百姓都说是刘藩逆流而亡。等晋军快要到达城边的时候,遇到刘毅的大将朱显之带领人马沿江巡逻。朱显之看见大队的人马向前快速行进,便策马向前询问刘藩所在,晋军回答:“还在后面。”显之行至军后,仍然没有见到刘藩,又听见鼓声阵阵,看见江津船舰被烧,于是得出判断,并不是刘藩前来江陵,便跃马飞报刘毅,急令闭门迎敌,但已经太晚了,王镇恶已率兵杀入城内,在城边顺风放火,焚烧大城的东南两门。
镇恶又派人将皇帝的诏书、赦文以及刘裕的手书一起交给刘毅,刘毅非常傲慢,他并没有看这些东西,将它们全部焚毁。等到大军交战的时候,两军中竟有不少人是父子兄弟以及亲戚朋友,他们边说边战。刘毅的部下得知刘裕大军在后,更是没有心情再战,慌乱之中,刘毅从大城东门逃至牛牧佛寺,最后走投无路自缢而死。王镇恶则因功受封为汉寿县子。