汉为苍梧郡富川县地。
三国吴为始安郡平乐县地。
隋义宁二年(618)分置茶城县,治今恭城河东南岸江贝村老县垌,因当地盛产茶叶得名,属始安郡。
唐武德四年(621)改恭城县,传因前茶税苛重,减免后以近似字改名,属乐州;贞观八年(634)属昭州。
北宋太平兴国元年(976)县治迁北乡龙渚市(今栗木镇上宅村大源头)。
南宋景定五年(1264)县治迁回原址。
元大德五年(1301)属平乐府。
明成化十三年(1477)县治徙今址。
明、清沿袭。
1913年属漓江道。
1914年属桂林道。
1930年属广西省第二民团区。
1932年属桂林民团区。
1933年属平乐民团区。
1934年属平乐行政监督区。
1940年属广西省第二行政督察区。
1942年属广西省第一行政督察区。
1949年12月11日,恭城解放,划属平乐专区辖。
1958年属桂林专区。
1971年属桂林地区。
1990年2月3日,国务院批准恭城县实行民族区域自治,设立恭城瑶族自治县,以原恭城县的行政区域为恭城瑶族自治县的行政区域。
1998年属桂林市。