唐初置忻城縣,明改為忻城土縣,清析置理苗分縣,后廢,民國改忻城土縣為忻城縣。1949年解放后屬武鳴地區,1951年屬宜山地區,1958年屬柳州專區,1971年屬柳州地區。
1949年全縣轄14個鄉。1950年轄4個區,14個鄉。1958年轄25個公社。1964年轄9個區,1個鎮,103個公社。1982年轄1個鎮、9個公社。1984年轄5個鎮、7個鄉。1987年析果遂鄉置新圩鄉。
1996年,忻城縣面積2534平方千米,人口約39萬人。轄5個鎮、8個鄉:城關鎮、大塘鎮、思練鎮、古蓬鎮、紅渡鎮、寧江鄉、馬泗鄉、歐洞鄉、安東鄉、果遂鄉、新圩鄉、北更鄉、遂意鄉。縣政府駐城關鎮。
2000年第五次人口普查,忻城縣總人口343556人。其中:城關鎮32006人,大塘鎮39688人,思練鎮44000人,紅渡鎮31109人,古蓬鎮28154人,寧江鄉41555人,馬泗鄉16972人,歐洞鄉13245人,安東鄉15287人,果遂鄉24302人,新圩鄉12122人,遂意鄉21200人,北更鄉23916人。
2003年,忻城縣轄5個鎮、8個鄉:城關鎮、大塘鎮、思練鎮、紅渡鎮、古蓬鎮、寧江鄉、馬泗鄉、歐洞鄉、安東鄉、果遂鄉、新圩鄉、遂意鄉、北更鄉。
2005年6月13日,廣西壯族自治區政府(桂政函[2005]167號)同意撤銷寧江鄉,整建制并入城關鎮,城關鎮政府駐地不變。調整后,全縣轄5個鎮、7個鄉。