夏商朝代,地屬冀州。
西周時分屬于幽、并兩州。
春秋時屬代國。
戰(zhàn)國時屬燕國。
秦屬代郡。
西漢漢武帝元封元年(前110),于今縣境舊懷安村置“夷輿”縣,屬上谷郡,治所沮陽(原懷來故城)。
唐穆宗長慶二年(822),唐王朝統(tǒng)治者,取“朝廷施行仁政,百姓懷恩而安”之意,以此為縣名于今舊懷安村置懷安縣,先后隸屬于河北道之武州(治今宣化)和新州(治今涿鹿縣城)。
明洪武二十三年(1390),廢懷安守御千戶所,升置為懷安衛(wèi)。
明宣德五年(1430)屬萬全都指揮使司。
景泰五年(1454),萬全都司置分守(協(xié)守)兩路參將于柴溝堡。
清康熙三十二年(1693),懷安衛(wèi)改為懷安縣,屬直隸省宣化府。
1928年劃歸察哈爾省,省會設(shè)在張垣(今張家口市)。
1937年懷安與萬全合并為日偽“萬安縣”,駐柴溝堡。
1952年察哈爾省撤銷,懷安縣并入河北省,屬張家口專區(qū)。
1958年10月,懷安、萬全兩縣合并稱“懷安縣”,治柴溝堡。
1959年5月撤消張家口專區(qū),屬張家口市。
1961年5月,張家口專區(qū)恢復,懷安縣屬張家口專區(qū)。
1961年12月25日,懷安、萬全兩縣分制。
1993年張家口專區(qū)與張家口市合并,懷安縣隸屬張家口市管轄。