汉代称宁县,唐属文德县,金、元属宣平县,明洪武二十六年(1393年)置万全左、右卫。清康熙三十二年(1693年)改万全右卫为万全县。据传,因这里“地势险要,屯兵甚多,防备周全,万无一失”而得名。1941年与1958年前后两次同怀安县合并,1961年复置万全县。
1983年,万全县政府驻地由万全城迁至孔家庄镇(1983年5月24日河北省人民政府批准,7月1日开设办公)。1993年,万全县划归张家口市管辖。
1997年,万全县面积1161.5平方千米,人口20.9万,辖4个镇、7个乡:孔家庄镇、万全镇、洗马林镇、郭磊庄镇、宣平堡乡、北沙城乡、旧堡乡、安家堡乡、高庙堡乡、新河口乡、膳房堡乡。县政府驻孔家庄镇。
2000年,根据第五次人口普查数据,全县总人口207403人,其中:孔家庄镇59453人,万全镇17930人,洗马林镇10497人,郭磊庄镇23662人,膳房堡乡10996人,新河口乡8335人,宣平堡乡10365人,高庙堡乡13215人,旧堡乡11393人,安家堡乡23191人,北沙城乡18366人。
2002年底,万全县面积1161.5平方千米,人口20.36万。辖4个镇、7个乡,7个社区、172个行政村。县政府驻孔家庄镇。
孔家庄镇 镇政府驻孔家庄村。面积89.73平方千米,人口5.75万。辖5个社区、22个行政村:气象后街、商业街、工业街、新华街、民主街;孔家庄、新窑子、马连堡、李青庄、西红庙、小屯堡、太师庄、上保寺、李家坊、张杰庄、暖店堡、深竟堡、马家房、旧窑子、朱尾庄、上营房、吴家窑、逯家湾、义兴堡、上营屯、东红庙、兴民。
洗马林镇 镇政府驻洗马林村。面积138.58平方千米,人口1.18万。辖20个行政村:洗马林、胡拉沟、辛窑子、堰家沟、榆林沟、庙儿沟、太平湾、西柳林、醋柳坪、黄土梁、小沙沟、牛儿湾、半打沟、杀虎沟、西洞、冰河、南窑、瓦窑、西沟、沙地房子。
郭磊庄镇 镇政府驻郭磊庄村。面积58.52平方千米,人口2.48万。辖1个社区、13个行政村:郭磊庄镇;郭磊庄、任家房、龚南窑、阳门堡、丰胜庄、旧羊屯、常家房、何家屯、水庄屯、杏园庄、郭磊庄旧、孙家小庄、振兴。
万全镇 镇政府驻西北街村。面积89.02平方千米,人口1.87万。辖1个社区、15个行政村:万全城镇;西北街、东北街、西南街、东南街、上田庄、苏家桥、李杏庄、吴家庄、沙家庄、屈家庄、东桥街、水关、东湾、西湾、盆窑。
膳房堡乡 乡政府驻膳房堡村。面积176.29平方千米,人口1.02万。辖21个行政村:膳房堡、艾和沟、孙家庄、正北沟、膳南山、黄家堡、牛窑沟、梁家庄、大柳沟、连针沟、冯家窑、新开口、望虎台、菜山沟、窑儿沟、和尚庄、巨德堡、太平庄、东洞、西湾、富民。
北新屯乡 乡政府驻北新屯村。面积194.29平方千米,人口1.02万。辖26个行政村:北新屯、东柳林、乐田湾、小麻坪、永安堡、窑儿湾、庙儿沟、顾家沟、代家房、红土沟、刘虎庄、何显庄、柳东庄、秦家窑、马连滩、水泉沟、宋家窑、新河口、豆茬沟、罗全洼、北堡、西永丰堡、红旗扬沟。
北沙城乡 乡政府驻北沙城村。面积64.84平方千米,人口1.99万。辖11个行政村:北沙城、羊窖沟、孙家窑、岸庄屯、西房子、红浅沟、老龙湾、周家河、德胜堡、北辛庄、黄銮庄。
宣平堡乡 乡政府驻宣平堡村。面积49.4平方千米,人口1.11万。辖8个行政村:宣平堡、蔡家庄、李家庄、霍家房、第八滩、水泉堡、武家庄、石庄屯。
旧堡乡 乡政府驻旧堡村。面积64.24平方千米,人口1.22万。辖6个行政村:旧堡、柳沟、板山、赐沟、牛家窑、三里庄。
安家堡乡 乡政府驻安家堡村。面积101.38平方千米,人口2.50万。辖14个行政村:安家堡、李受庄、龙池屯、张贵屯、邹家庄、安静庄、第八屯、第七屯、贾贤庄、田茂庄、梁太庄、王玉庄、新羊屯、赵家梁。
高庙堡乡 乡政府驻高庙堡村。面积134.01平方千米,人口1.47万。辖16个行政村:高庙堡、蒋家梁、站石沟、候其庄、大张窑、李虎庄、郭兵沟、陈家沟、刘家沟、胡山庄、苏家咀、杜坛庄、於家梁、黑石堰、兵民、西腰站堡。

