春秋戰(zhàn)國時期,為燕國地。
秦時,置沮陽縣,屬上谷郡。
西漢時分為沮陽、且居、泉上三縣;東漢建武十五年(39)廢且居、泉上兩縣,合并為沮陽縣。
北齊時屬北燕州永豐郡,稱懷戎縣。
隋廢北燕州,改屬涿郡。
唐屬河北道媯州。
遼初(938),遼太祖改“懷戎”為“懷來”。
明永樂十五年(1417)改稱懷來左衛(wèi),次年稱懷來衛(wèi),直隸后軍都督府。
康熙三十二年(1693)改衛(wèi)為縣,屬宣化府;1911年屬直隸省口北道;1928年歸察哈爾省;1937年被日軍侵占。
1938年至1948年間,晉察冀抗日政府在懷來縣東南、西南、東北各邊界地區(qū)與四鄰縣先后建置宣懷涿、龍延懷、懷涿、龍宣懷、昌宛懷五個民主聯(lián)合縣。
1945年9月,懷來縣第一次解放,屬晉察區(qū)十二專區(qū),同年底屬察哈爾省第五專區(qū)。
1946年改屬冀熱察區(qū)察東專區(qū)。
1948年12月懷來縣第二次解放,聯(lián)合縣撤銷。
1949年1月屬察哈爾省察南專區(qū)。
1951年4月,因修建官廳水庫,縣治由懷來城遷至沙城鎮(zhèn)。
1952年11月隸屬張家口專區(qū)。
1958年懷來、涿鹿并為一縣,稱為懷來縣。
1961年5月懷來、涿鹿分設(shè)。
1993年張家口地區(qū)與張家口市合并,懷來縣屬張家口市。