秦代屬上谷郡、代郡,西北為匈奴地。
漢代屬上谷郡(治今懷來縣)、代郡,北部為烏桓、鮮卑地。
三國魏、晉因之。
隋代屬涿郡、雁門郡。
唐代屬媯州(后改武州,治今宣化區)、蔚州,北部為突厥地。
遼改屬歸化州、奉圣州、蔚州。
金屬宣德州(歸化州改,仍治今宣化區)、桓州、蔚州、奉圣州。
元代置宣德府(治今宣化區),西北部置興隆路(治今張北縣)。
明代置宣府左、右、前衛,后稱宣府鎮(均治今宣化區),北部屬開平衛、大同府。
清康熙三十二年(1693),宣府鎮改為宣化府。
清雍正二年(1724),設張家口廳,管理口外蒙旗事務。
清宣統元年(1909),京張鐵路通車,張家口的商業及市政建設由橋西發展到橋東并形成較大商埠。
1914年,北洋政府成立察哈爾特別區,都統府僑治張家口。
1928年,國民黨政府設察哈爾省,張家口為省府駐地。
1937年,日本帝國主義侵占張家口,繼而扶持漢奸于品卿等在宣化成立偽察南自治政府。
1939年,日偽置張家口特別市,屬偽蒙疆自治政府。
治所即今河北張家口市。
后廢。
1945年8月,張家口解放,復置張家口市,屬察哈爾省。
1946年8月,復置張家口市,為晉察冀邊區政府駐地。
1948年,張家口第二次解放,恢復張家口市。
1952年,設立張家口專區,轄原察哈爾省劃歸河北省的張北、赤城等16個縣。
1955年,撤銷宣化市,其行政區域并入張家口市,張家口市第一區更名為橋東區;第二區、第三區合并為橋西區;第四區更名為七里茶坊區;原宣化市龐家堡礦區更名為張家口市龐家堡區;原宣化市下花園礦區更名為張家口市下花園區。
1958年,張家口市改為縣級市,劃歸張家口專區。
1959年,升為地級市,由省直轄。
1961年,恢復張家口專區的建制,張家口市改為縣級市,由張家口專區領導。
1963年撤銷宣化市,其行政區域并入張家口市。
1983年,張家口市升為地級市,改由省直轄,張家口地區的宣化縣劃歸張家口市。
1989年,撤銷張家口市茶坊區和龐家堡區,將原茶坊區分別劃歸張家口市橋東區、橋西區管轄,將原龐家堡區劃歸宣化縣管轄。
1993年,張家口地、市合并,實行市管縣體制。
下轄13個縣和4個區。
2016年1月,撤銷張家口市宣化區、宣化縣,成立新的宣化區;撤銷萬全縣,成立萬全區。
撤銷崇禮縣,成立崇禮區;將原宣化縣的大倉蓋鎮、東望山鄉劃歸張家口市橋東區管轄,將原宣化縣的沙嶺子鎮、姚家房鎮劃歸張家口市橋西區管轄。