城固歷史悠久,是西漢著名的外交家、探險家、“絲綢之路”開拓者張騫的故里,迄今有2300余年的歷史。漢高祖蓄糧練兵曾以城固為重點,賴以完成帝業。諸葛亮北伐曹魏以城固為屯糧之所。
夏、商時為梁州之域,周赧王三年(秦惠文王更元十三年,前312年),楚人伐秦,秦敗楚師于丹陽,取地六百里置漢中郡,同時置成固縣,“蓋始為城,而冀其鞏固之意也”,故名“成固”,故城固縣設置縣級政區始于秦置漢中郡之年。縣城在今博望街道辦事處蓮花街道辦事處(漢王城附近)。
蜀漢建興七年(229年)諸葛武侯筑樂城于成固。
南朝劉宋時期改“成固”為“城固”,隸益州,屬漢中郡轄。據《太平寰宇記》載:北朝魏宣武帝“正始中城固縣(城固漢王城附近)移居壻鄉川,即今理?!蓖d:“斗山在縣南五里。”即今西原公村北、慶山南,居湑水東岸。
武德二年(619年),“城固”更名“唐固”。唐太宗貞觀二年(628年)廢“唐固”復為“城固”,屬梁州。
北宋時期,宋太祖分全國為十五路,城固縣屬陜西路;真宗咸平年間分陜西路為夔州路和利州路,城固屬利州路;仁宗天圣中增為十八路;神宗元豐六年(1083年)又增為二十三路,定制,城固縣隸陜西利州路,屬興元府。據嘉靖《城固縣志》載:“宋崇寧二年(縣城由壻鄉川)移建今所?!?/span>
南宋高宗紹興十四年(1144年),分利州路為東西兩路,城固隸利州東路,屬興元府轄。
元代置陜西行中書省,興元府改為興元路,城固縣屬興元路轄,元末城垣廢壞。
明代設陜西承宣布政使司(轄今陜、甘、寧東南部及青海西寧一帶)。明太祖洪武三年(1370年),興元路改為漢中府,城固縣隸關南道(關南道轄今漢中、安康兩地區),屬漢中府轄。
清代設陜西省,轄漢中府,城固縣隸陜安道(陜安道轄漢中、興安二府),屬漢中府轄。
中華民國初年廢漢中府,改為漢中道,城固屬漢中道。1928年廢道,城固直屬陜西省。1935年漢中設陜西省第六行政督察區,城固屬第六行政督察區轄。
1949年12月7日,中國人民解放軍第19軍57師進駐縣城,城固解放。新中國成立之初設陜西省陜南行政公署(轄漢中、安康、商洛三個專區),城固縣隸陜南行政公署,屬漢中專員公署轄。縣政府駐城關區,轄城關、原公、沙杜、升木、水磨、周公、博望、南樂、五堵、古路、二里11個區119個鄉鎮。
1950年5月,撤銷升木、博望、二里3個區,全縣轄8個區93個鄉,隸屬陜南行政公署。
1951年行署撤銷,城固屬陜西省漢中專署轄。
1953年初,恢復升木區后為9個區108個鄉。1953年8月,增設龍頭、二里、小河3個區,調整后轄12個區120個鄉,隸屬陜西省漢中專員公署。
1956年,全縣區劃調整,轄城關、原公、龍頭、水磨、二里、南樂、五堵7個區63個鄉3個街。
1958年,全縣設立26個人民公社。
全縣行政區劃大致分為三個時期:唐至清代,民國時期和中華人民共和國建立后。唐到清代,本縣行政區域采取“里”、“地”等單位進行劃分設置;民國時期,本縣分東南西北4個區,區下有村、排、甲的設置,后4區劃為12區;1949年12月,全縣劃編為11個區119個鄉,城內并設8街,鄉以下為行政村,1958年9月全縣人民公社化,成立26個人民公社,公社下的社、隊,按營、連、排建制。1986年初,全縣共設9區(轄44個鄉和11個鄉級鎮)、一鎮(鎮轄4個辦事處)。隨著鄉鎮行政體制改革的逐步深入,全縣行政區劃進行了較大的調整,1996年撤區并鄉后為18個鎮、12個鄉;2001年9月,根據省政府在楊凌召開的全省并鄉建鎮工作會議精神,我縣鄉鎮行政區劃又進行了相應調整,調整后,全縣共轄18個鎮、6個鄉,5個辦事處、17個社區,310個行政村。
2015年根據鄉鎮機構改革實施方案,再次進行了撤并鄉鎮,調整后全縣共轄15個鎮2個街道辦事處,分別是:博望街道辦事處、蓮花街道辦事處、龍頭鎮、沙河營鎮、文川鎮、柳林鎮、老莊鎮、桔園鎮、原公鎮、上元觀鎮、天明鎮、二里鎮、五堵鎮、雙溪鎮、小河鎮、三合鎮、董家營鎮。