柏乡一名始见于《汉书.地理志 》,当时为侯国,即所谓“汉以此封侯,始有柏乡之名”(《赵州志》)。唐李吉甫《元和郡县志》载:“隋开皇十六年(公元596年)于汉鄗城南十八里改置柏乡县,遂取古柏乡县以为名”。李氏所言取古柏乡县为名不确,因汉至隋开黄十六年前无柏乡县。宋代的乐史注意到这一点,其《太平寰宇记》载:“遥取汉柏乡之名”,故名为柏乡县。
柏乡县,春秋时属晋,晋于此置鄗邑(故址在县城北二十二里即今固城店)。战国时南部为赵地,北部为中山国地。秦属钜鹿郡。西汉始于鄗邑置鄗县,属恒山郡。文帝元年(前179年),恒山郡改名为常山郡,属之。竟宁元年(前33年),封柏乡侯国,属钜鹿郡。东汉初,鄗改名为高邑县,柏乡侯国并入高邑县。建武十七年(41年),改属中山国;建武二十年(44年),还属常山郡。三国魏初,高邑县仍属常山郡;太和六年(232年),改属赵国。晋代因之。北魏时,高邑县属赵郡。北齐时,今县属高邑、柏仁二县地。隋开皇十六年(596年),析高邑,柏仁县置柏乡县,治所在今县城,属栾州;大业二年(606年),改属赵州;大业三年,改赵州为郡,辖柏乡县。唐武德元年(618年),赵州治所迁至柏乡县,四年后,还治于平棘(今赵县城南)。武德五年,赵州更名栾州,属栾州。贞观初,复名赵州,属之。五代因之。宋熙宁元年(1068年)柏乡县并入高邑县,为一镇。元祐元年(1086年),复置柏乡县。宣和元年(1119年),升赵州为庆源府,属庆源府。金代天会七年(1129年),降庆源府为赵州,属之,天德三年(1151)年,赵州更名沃州,属之。元代,沃州复称赵州,领柏乡县。明代,属京师赵州;洪武六年(1373年)至十三年,隆平县并入柏乡县,属正定府赵州。清属直隶省赵州。1913年,属冀南道。1914年,冀南道改名大名道;属之。1928年,直属河北省。1937年,属河北省第十三督察区。1938年6月,柏乡县抗日民主政府成立,属冀南区。1941年11月,属晋冀鲁豫边区冀南区十一专区。1945年11月,柏乡全境解放,属冀南区四专区。1948年8月,属华北行政区冀南区四专区。1949年8月,属河北省邢台专区。1950年8月,下设2个区,辖8乡2镇。1952年10月,将2个区调整为3个区。1953年4月,划为2个区公所(一区城关,二区固城店)、27个乡镇。1954年8月25日,撤销区公所。1956年9月,将27个乡(镇)合并为城关1个镇和南张村、王家庄、西汪、西南鲁、南阳、白阳、北马、固城店、龙华、内步10个乡.1958年3月24日,撤销南张村乡,其辖区分别划归城关镇和王家庄乡,1958年4月28日,撤销邢台专区,划归邯郸专区。1958年12月20日,柏乡县并入内丘县,今境内设有柏乡和固城店两个公社。1960年5月3日,撤销邯郸专区,今境随内丘县划归邯郸市。1961年5月23日,恢复邢台专区,析内丘县置隆尧县,今境属隆尧县,柏乡和固城店两个公社分设为城关、南阳、南鲁、白阳、南马、龙华、内步、王家庄、西汪、固城店10个公社。1962年1月,原区域恢复柏乡县建制,辖10个公社,属邢台专区。1967年12月,邢台专区改为邢台地区,属之。1984年,政社分设,城关公社改为城关镇,其他9个公社统一改为乡。1988年,固城店乡改为镇。1990年,城关镇改称柏乡镇。1996年,扩乡并镇,由原来十个乡镇合并成2镇4乡。
2000年8月在柏乡镇、固城店镇、西汪乡、龙华乡各分设两个办事处,全县辖2镇4乡8个办事处。2005年6月撤销各乡镇办事处,并入原所在乡镇。2007年西汪乡更名为西汪镇。2010年7月柏乡县组建县工业园区党工委和管委会,辖柏乡镇的西街、南街、赵家庄、东路村、西路村和王家庄乡的南张村。
截至2014年,柏乡县辖3个镇、3个乡,2个社区、121个行政村。