漢時屬雁門郡武州地。……唐末置武州,故治在今城關北15千米大武州村。又置遮虜軍,故治在今城關西北20千米五王城村,后廢。五代唐改武州為毅州。宋為嵐州嵐谷地。遼重熙九年(1040)復為武州,兼置神武縣為州治,隸西京道。宋宣和五年(1123)歸宋,隸云中路。尋入金,廢神武縣入武州,隸西京路。
元改隸大同路。明洪武初年廢。洪武七年設鎮西衛。嘉靖十六年(1537)建五寨堡,以堡轄東、西、南、北、中5大牧寨而得名。清雍正三年(1725)升堡為縣,屬寧武府。民國初年廢府,縣改屬雁門道,道廢后直屬省。
1949年屬興縣專區。1952年屬忻縣專區。1958年以岢嵐縣及神池縣之一部并入,屬晉北專區。1961年岢嵐、神池2縣析出,復屬忻縣專區。1967年屬忻縣地區。1983年屬忻州地區。2000年屬地級忻州市。
1997年,五寨縣轄3鎮15鄉:城關鎮、三岔鎮、小河頭鎮、前所鄉、經堂寺鄉、孫家坪鄉、梁家坪鄉、黃土坡鄉、杏嶺子鄉、劉家圪臺鄉、胡會鄉、李家坪鄉、新寨鄉、韓家樓鄉、下鹿角鄉、白草莊鄉、東秀莊鄉、李莊鄉。縣政府駐城關鎮。
2000年第五次人口普查,全縣總人口108651人,其中:城關鎮33463人,小河頭鎮5146人,三岔鎮11067人,前所鄉10462人,李家坪鄉5022人,經堂寺鄉937人,黃土坡鄉1258人,孫家坪鄉4561人,梁家坪鄉3337人,胡會鄉6855人,新寨鄉6070人,韓家樓鄉5467人,李莊鄉1443人,劉臺鄉2264人,下鹿角鄉2239人,白草莊鄉1822人,東秀莊鄉4500人,杏嶺子鄉2738人。
2001年區劃調整后,全縣轄3個鎮、9個鄉:硯城鎮、小河頭鎮、三岔鎮、前所鄉、李家坪鄉、孫家坪鄉、梁家坪鄉、胡會鄉、新寨鄉、韓家樓鄉、東秀莊鄉、杏嶺子鄉。縣政府駐硯城鎮。