隋末,肖铣据邵阳置建州,设武攸县,治今城步儒林镇,为置县之始。唐武德四年,李渊平肖铣,更武攸为武冈,仍治今儒林镇,隶南梁州。贞观十年,改南梁州为邵州,今城步大部分地方为邵州武冈县地,县南境则分别为“西原蛮”地和“桂州蛮”地。宋初移武冈县治于今武冈市城关镇,于原治置城步寨,始用“城步”之名。
弘治十七年(1504)析武冈、绥宁县地置城步县,隶属宝庆府,治所设今县城,并沿袭至今。清乾隆三年城步改隶靖州,乾隆六年复隶宝庆府。
1949年10月14日,城县解放,隶属邵阳区督察专员公署,后隶属邵阳专员公署、邵阳地区行政公署。
1956年11月30日,国务院批准撤销城步县建制,建立城步苗族自治县,系全国第二个苗族自治县。
1986年1月27日,国务院批准撤销邵阳地区建置,实行市管县体制,城步苗族自治县划隶邵阳市。