東漢,魏,西晉城武縣屬濟陰郡。南朝宋屬徐州北濟陰郡。北魏成武縣仍屬北濟陰郡,縣治所徙至郜城(今郜鼎集)。
隋開皇16年(596年)置戴州於城武縣,大業初廢戴州,城武縣還治故城(今成武鎮),屬濟陰郡。唐武德4年(621年)復置戴州,城武縣屬之。貞觀17年(643年)廢戴州,城武縣改屬曹州。光化2年(899年)改屬輝州。五代唐改輝州為單州,城武縣隨屬單州,北宋因之。
元城武縣屬曹州。明洪武4年(1371年)屬濟寧府,18年(1385年)濟寧府改置為濟寧州,城武縣改屬兗州府。清雍正13年(1734年)曹州直隸州升為曹州府,原屬兗州府之城武縣改屬曹州府。
1913年屬岱南道(1914年更名濟寧道)。1925年屬曹濮道。1928年道廢直隸於省。1936年屬國民黨山東省第二行政督察區。
1949年8月屬夾處湖西專區。1952年11月隨湖西專區劃歸山東省。1953年8月,湖西專區撤銷,轉屬菏澤專區。1958年10月城武縣更名為成武縣。同年12月菏澤專區撤銷,改屬濟寧專區。1959年7月恢復菏澤專區(1967年更名菏澤地區),仍屬之。2000年6月屬地級菏澤市。