秦置碭郡、碭縣,治今城關鎮南30千米河南夏邑縣境芒碭山西麓。據《水經注》:“應劭曰,縣有碭山,山在東,出文石。秦立碭郡,蓋取山之名也。”
東漢改為碭山縣,西晉并入夏邑縣。隋開皇十八年(598)復置碭山縣,治今城關鎮東毛李莊。因黃水為患,縣治多次遷移,至明萬歷二十六年(1598)始遷今址。1949年4月屬宿縣專區,1952年11月屬江蘇省徐州專區,1955年2月復屬宿縣專區,1956年1月屬蚌埠專區,1961年4月屬宿縣專區。
1997年,碭山縣面積1193平方千米,人口83.1萬,轄14個鎮、5個鄉:城關鎮、曹莊鎮、李莊鎮、文莊鎮、程莊鎮、葛集鎮、唐寨鎮、周寨鎮、朱樓鎮、良梨鎮、官莊壩鎮、西南門鎮、關帝廟鎮、玄廟鎮、趙屯鄉、權集鄉、黃樓鄉、隴海鄉、劉暗樓鄉。縣政府駐城關鎮。
2000年第五次人口普查,全縣總人口862356人,其中:城關鎮79466人,西南門鎮35779人,李莊鎮49845人,唐寨鎮46186人,葛集鎮59129人,周寨鎮44954人,玄廟鎮53155人,官莊壩鎮44841人,曹莊鎮33926人,關帝廟鎮60556人,朱樓鎮36141人,文莊鎮25313人,程莊鎮54126人,良梨鎮56959人,隴海鄉40550人,權集鄉33904人,劉暗樓鄉22763人,趙屯鄉56585人,黃樓鄉28178人。
2004年,碭山縣鄉鎮由19個調整為18個,撤銷隴海鄉,并入城關鎮,城關鎮更名為碭城鎮。2004年底,碭山縣轄14個鎮、4個鄉,10個居委會、382個村委會。
2006年,碭山縣轄14個鎮、4個鄉:碭城鎮、西南門鎮、李莊鎮、唐寨鎮、葛集鎮、周寨鎮、玄廟鎮、官莊壩鎮、曹莊鎮、關帝廟鎮、朱樓鎮、文莊鎮、程莊鎮、良梨鎮、權集鄉、劉暗樓鄉、趙屯鄉、黃樓鄉。
2007年12月,碭山縣調整鄉鎮行政區劃:撤銷西南門鎮、文莊鎮、劉暗樓鄉、黃樓鄉、權集鄉、趙屯鄉,調整6個鎮,保留7個鎮,調整后全縣為13個鎮。具體情況為:將原西南門鎮整建制并入碭城鎮,鎮政府為原碭城鎮駐地(西河北路1號)。將原文莊鎮整建制并入唐寨鎮,鎮政府為原唐寨鎮駐地(局子街)。將原劉暗樓鄉整建制并入周寨鎮,鎮政府為原周寨鎮駐地(周寨村)。將原黃樓鄉整建制并入關帝廟鎮,鎮政府為原關帝廟鎮駐地(關帝廟)。將原權集鄉整建制并入玄廟鎮,鎮政府為原玄廟鎮駐地(碭山縣果園場場部所在地)。同時還將趙屯鄉撤銷,設立趙屯鎮,行政區劃范圍不變,鎮政府為原趙屯鄉駐地(陳莊村)。保留葛集鎮、李莊鎮、良梨鎮、程莊鎮、朱樓鎮、曹莊鎮、官莊壩鎮7個鎮,行政區劃范圍、鎮政府駐地不變。