王善,字子善,真定藁城人。容貌雄伟,声如洪钟,足智多谋,尤精于骑射。金贞..年间,国家多事,人民颠沛流离,田地荒芜,衣食艰难,王善讨饭奉养母亲。金贞..三年(1215),反金斗争风起云涌,有些人为保家卫族,也组织起来,推王善为首。善约束有法,防御有方,被升为本县主簿。
金兴定二年(1218),委任善为中山府治中。当时武仙镇守真定,暗中有所图谋,而忌恨王善的威名,密令知府李济、府判郭安暗害王善。兴定三年秋,李济、郭安设宴请王善来议事,埋设伏兵,准备伺机谋杀。善发觉,忙回去召集部下,仓卒间得八十人。善与他们慷慨盟誓,个个奋勇争先,诛杀济、安。王善对此二人部下说“:挑衅的只李、郭二人,与其他人无关。”夜间,善睡在北城上,对部下说:“不要因我而连累了你们的家小,可取我的头去献给帅府!”大家忙道“:公为何这样说,我们只有效死力而已。”于是王善带领他们投顺蒙古大军,授他金符,委为同知中山府事。是年冬,善率三百人攻武仙,仙遣将率二千人迎战,被王善击溃。武仙逃往获鹿,令副将段佐守城。王善攻克真定,军势大振,自中山府以南的四十二州郡皆降蒙古。
太祖十五年(1220),升王善为中山真定等路招讨使,不久又加右副元帅、骠骑大将军之职,屯驻藁城。十七年,升藁城为永安州匡国军,命王善行帅府事。十八年,进升为金吾卫大将军、左副元帅。武仙走投无路,请求投降蒙古,太祖命他仍镇守真定。王善奏称“:仙狼子野心,终究必反,请修城防御。”不久,武仙果然反叛,率军来攻藁城,火烧西门。王善出战击退。武仙又使其部下宋元,俘老幼四千人南逃,善追击夺回被俘人口,让他们恢复原来职业。从此以后,武仙再也不敢回到真定来,其部属多投降蒙古。太祖二十一年,王善因功赐金虎符,仍行帅府事。
太宗四年(1232),王善随从大军征河南,进至郑州。守将马伯坚素闻王善威名,登高大呼:“藁城王元帅在军中否,我愿开城投降。”善至城下,解下甲胄与伯坚答话,伯坚果率众出降。善严令军士秋毫勿犯,民皆安居,愿随善北过黄河者,数以万计。善分授田地以安置他们。太宗八年,王善兼任河北西路兵马副都总管。十三年,授知中山府事。该府所属之新乐县,地处要冲,迎送供给比他县多一倍,皆取之于民。王善为均其劳逸,凡所征未交纳者,他用自己的家财代纳,受到人民的歌颂。又释放家中僮仆五百人为民,他们深感王善的恩德。太宗皇后二年(1243)卒,终年六十一岁。皇庆元年(1312),赠银青荣禄大夫、司徒,追封冀国公,谥武靖。