漢置樓煩縣,魏、西晉因之,永嘉年廢。北魏于今縣境東北太平村置太平郡,別置廣寧郡、神武郡。北齊廢廣寧、神武2郡入太平郡。北周廢太平郡。隋大業四年(608)于今城關西南50千米寧化村置樓煩郡,隋末陷廢。唐末于樓煩郡故治置寧武軍,取北魏廣寧、神武二郡尾字為名,后廢。
五代北漢乾佑五年(952)置寧化軍,后廢,又置固軍,屬嵐州。宋太平興國四年(979)改固軍為寧化縣,故治在今城關西南寧化村。五年于縣置寧化軍,縣屬之。熙寧三年(1070)廢縣。元佑元年(1086)復置寧化縣,崇寧三年(1104)廢。金大定二十年(1180)再置寧化縣。二十二年升寧化軍為州。蒙古太祖十六年(1221)州、縣俱廢。
明洪武三年(1370)置寧化所,故址在今化北屯鄉(原寧化鄉)。成化年間建寧武關。清雍正三年(1725)置寧武府、寧武縣,縣為寧武府治。1912年廢府,縣屬雁門道,道廢后直屬省。1949年屬忻縣專區。1958年崞縣、神池2縣部分地區劃入,屬晉北專區。1961年復屬忻縣專區。1967年屬忻縣地區。1983年屬忻州地區。2000年屬地級忻州市。
1997年,寧武縣轄4個鎮、18個鄉:城關鎮、陽方口鎮、東寨鎮、石家莊鎮、化北屯鄉、東莊鄉、輝順溝鄉、懷道鄉、薛家洼鄉、涔山鄉、寧化鄉、東馬坊鄉、新堡鄉、春景洼鄉、大廟鄉、前馬侖鄉、下白泉鄉、西馬坊鄉、余莊鄉、圪繆鄉、迭臺寺鄉、盤道梁鄉?h政府駐城關鎮。
2000年第五次人口普查,寧武縣總人口152938人,其中:城關鎮44843人,陽方口鎮19442人,東寨鎮14951人,石家莊鎮4214人,盤道梁鄉1556人,薛家洼鄉2664人,下白泉鄉2371人,余莊鄉4628人,東莊鄉2898人,迭臺寺鄉4144人,春景洼鄉1519人,涔山鄉2830人,大廟鄉929人,前馬侖鄉1060人,化北屯鄉8013人,寧化鄉4581人,西馬坊鄉8689人,新堡鄉6600人,懷道鄉6196人,圪廖鄉3307人,東馬坊鄉5776人,輝順淘鄉1727人。
2001年,寧武縣區劃調整(以下資料需要核實):城關鎮更名為鳳凰鎮;大廟鄉、前馬侖鄉并入東寨鎮;盤道梁鄉、下白泉鄉并入薛家洼鄉;春景洼鄉并入涔山鄉;東莊鄉并入余莊鄉;輝順溝鄉并入東馬坊鄉;寧化鄉并入化北屯鄉。至此,全縣轄4個鎮、10個鄉:城區街道;鳳凰鎮、陽方口鎮、東寨鎮、石家莊鎮、薛家洼鄉、余莊鄉、涔山鄉、化北屯鄉、西馬坊鄉、新堡鄉、迭臺寺鄉、圪廖鄉、懷道鄉、東馬坊鄉。共有463個行政村,473個自然村?h政府駐鳳凰鎮。