西周、春秋为郜国地(郜国都城遗址在今山东成武县成武镇东南9公里郜鼎集),后属宋国,再后入齐。秦置城武县(今山东成武县成武镇)。西汉城武县属山阳郡。
东汉,魏,西晋城武县属济阴郡。南朝宋属徐州北济阴郡。北魏成武县仍属北济阴郡,县治所徙至郜城(今郜鼎集)。
隋开皇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月属地级菏泽市。