汉置楼烦县,魏、西晋因之,永嘉年废。北魏于今县境东北太平村置太平郡,别置广宁郡、神武郡。北齐废广宁、神武2郡入太平郡。北周废太平郡。隋大业四年(608)于今城关西南50千米宁化村置楼烦郡,隋末陷废。唐末于楼烦郡故治置宁武军,取北魏广宁、神武二郡尾字为名,后废。
五代北汉乾佑五年(952)置宁化军,后废,又置固军,属岚州。宋太平兴国四年(979)改固军为宁化县,故治在今城关西南宁化村。五年于县置宁化军,县属之。熙宁三年(1070)废县。元佑元年(1086)复置宁化县,崇宁三年(1104)废。金大定二十年(1180)再置宁化县。二十二年升宁化军为州。蒙古太祖十六年(1221)州、县俱废。
明洪武三年(1370)置宁化所,故址在今化北屯乡(原宁化乡)。成化年间建宁武关。清雍正三年(1725)置宁武府、宁武县,县为宁武府治。1912年废府,县属雁门道,道废后直属省。1949年属忻县专区。1958年崞县、神池2县部分地区划入,属晋北专区。1961年复属忻县专区。1967年属忻县地区。1983年属忻州地区。2000年属地级忻州市。
1996年,宁武县面积1987平方千米,人口约14万人。辖4个镇、18个乡:城关镇、阳方口镇、东寨镇、石家庄镇、化北屯乡、东庄乡、辉顺沟乡、怀道乡、薛家洼乡、涔山乡、宁化乡、东马坊乡、新堡乡、春景洼乡、大庙乡、前马仑乡、下白泉乡、西马坊乡、余庄乡、圪(土+廖)乡、迭台寺乡、盘道梁乡。县政府驻城关镇。
2015年末,宁武县辖4个镇、10个乡(合计14个),8个居委会、464个村委会(合计472个)。