秦朝统一岭南后(公元前214年),属桂林郡地,郡治布山(今贵港市境)。
汉初,汉高祖三年(公元前204年)至西汉元鼎六年(公元前111年)属南越国地;汉武帝平定南越国后,属郁林郡,郡治布山县(今贵港市境)。
三国,吴孙皓凤凰三年(274年)分郁林郡置桂林郡,县境属桂林郡所辖。晋朝因之。
南北朝时期,齐朝改置为腾溪县,属桂林郡管辖;梁、陈二朝这里都没有置县,属龙州马平郡地。
隋朝,仍没有置县,属始安郡地。
唐朝贞观初置忻城县,为芝州治;天宝元年(742年)改称忻城郡;乾元元年(758年)复为芝州,属桂州都督府;五代因之。
宋庆历三年(1043年)以羁縻芝州、归思、纡州地合并置忻城县,属广南西路右江道宜州管辖,宣和元年(1119年)属右江道庆远军,咸淳元年(1265年)属庆远府。
元朝,至元十三年(1276年)属庆远路安抚司,十六年改属庆远路总管府;大德元年(1297年)改属庆远南丹溪峒等处军民安抚司。
明朝洪武元年(1368年)属庆远府,二年改属庆远南丹军民安抚司,三年又改属庆远府,弘治十年(1497年)降忻城正县为土县。
清朝,隶属关系因之,土县由宜山县承审。宣统二年(1910年),其地归入宜山县,划分为宜山县第十一区(即外堡,包括今县属大塘、思练镇和安东、果遂乡地域) 和第十三区(即内堡, 包括今城关镇、宁江、新圩乡和红渡镇的渡江、六纳、六铁3个行政村以及宜山县属的福龙乡大部分地域在内),但仍称忻城土县。
中华民国元年(1912年),忻城土县属庆远府,二年属柳江道,民国十五年属柳江区,民国十七年改土县复称忻城县属柳江行政督察区,民国十九年属宜山民团区,民国二十一年属柳州民团区,民国二十三年属柳州行政监督区,民国二十五年属庆远行政监督区,民国二十九年属第四行政监察区(柳州行政监察区),民国三十一年属第二区,民国三十八年属第十三区。
1949年11月27日,忻城县解放,属武鸣专员公署;1950年3月改属宜山专员公署;1958年改属柳州专区(1971年改为柳州地区);
2000年,忻城县辖5个镇、8个乡,即城关镇、大塘镇、思练镇、古蓬镇、红渡镇、宁江乡、马泗乡、欧洞乡、安东乡、果遂乡、新圩乡、北更乡、遂意乡。
2002年12月撤销柳州地区,忻城县划归来宾市。
2005年,忻城县行政区划调整,宁江乡并入城关镇。