漢代稱寧縣,唐屬文德縣,金、元屬宣平縣,明洪武二十六年(1393年)置萬全左、右衛(wèi)。清康熙三十二年(1693年)改萬全右衛(wèi)為萬全縣。據(jù)傳,因這里“地勢險要,屯兵甚多,防備周全,萬無一失”而得名。
1941年與1958年前后兩次同懷安縣合并,1961年復(fù)置萬全縣。1983年,萬全縣政府駐地由萬全城遷至孔家莊鎮(zhèn)(1983年5月24日河北省人民政府批準,7月1日開設(shè)辦公)。1993年,萬全縣劃歸張家口市管轄。
1996年,萬全縣面積1161.5平方千米,人口20.9萬人,轄4個鎮(zhèn)、7個鄉(xiāng):孔家莊鎮(zhèn)、萬全鎮(zhèn)、洗馬林鎮(zhèn)、郭磊莊鎮(zhèn)、宣平堡鄉(xiāng)、北沙城鄉(xiāng)、舊堡鄉(xiāng)、安家堡鄉(xiāng)、高廟堡鄉(xiāng)、新河口鄉(xiāng)、膳房堡鄉(xiāng)。縣政府駐孔家莊鎮(zhèn)。
2000年第五次人口普查,萬全縣常住總?cè)丝?07403人,其中:孔家莊鎮(zhèn)59453人,萬全鎮(zhèn)17930人,洗馬林鎮(zhèn)10497人,郭磊莊鎮(zhèn)23662人,膳房堡鄉(xiāng)10996人,新河口鄉(xiāng)8335人,宣平堡鄉(xiāng)10365人,高廟堡鄉(xiāng)13215人,舊堡鄉(xiāng)11393人,安家堡鄉(xiāng)23191人,北沙城鄉(xiāng)18366人。
2001年末,全縣面積1161.5平方千米,人口20.36萬人。2002年,全縣轄4個鎮(zhèn)、7個鄉(xiāng),7個居委會、172個行政村。縣政府駐孔家莊鎮(zhèn)。
2003年末,全縣面積1158平方千米,人口22萬人。2004年末,全縣轄4個鎮(zhèn)、7個鄉(xiāng),9個居委會、172個行政村。
2010年第六次人口普查,萬全縣常住總?cè)丝?11706人,其中:孔家莊鎮(zhèn)81909人,萬全鎮(zhèn)17217人,洗馬林鎮(zhèn)7432人,郭磊莊鎮(zhèn)22723人,膳房堡鄉(xiāng)9377人,北新屯鄉(xiāng)5718人,宣平堡鄉(xiāng)10342人,高廟堡鄉(xiāng)9916人,舊堡鄉(xiāng)9716人,安家堡鄉(xiāng)21661人,北沙城鄉(xiāng)15695人。