隋末,肖銑據邵陽置建州,設武攸縣,治今城步儒林鎮,為置縣之始。唐武德四年,李淵平肖銑,更武攸為武岡,仍治今儒林鎮,隸南梁州。貞觀十年,改南梁州為邵州,今城步大部分地方為邵州武岡縣地,縣南境則分別為“西原蠻”地和“桂州蠻”地。宋初移武岡縣治於今武岡市城關鎮,於原治置城步寨,始用“城步”之名。
自漢至隋,境北資江流域先後屬都梁縣、武岡縣;中部巫水流域及嶺南之境為“五溪蠻地”,先後屬剎城、舞陽、龍標縣地、隋末,蕭銑置武攸縣,治今城步儒林鎮。唐代,縣境大部分為邵州武岡市(治同武攸)地,嶺南之境則分別為“西原蠻地”和“桂州蠻地”。宋初,武岡縣遷走,神宗熙寧八年(1075)置城步寨,城步之名始於此。徽宗崇寧二年(1103)縣境分屬武岡、綏寧地置城步縣(治同武攸),隸寶慶府。清高宗乾隆三年六年(1738~1714)城步一度改隸靖州。
民國2年(1913)隸湘江道,民國11年直隸於省,民國26年屬第六行政督察區。
1949年10月14日,城步縣解放,隸屬邵陽區督察專員公署,後隸屬邵陽專員公署、邵陽地區行政公署。1956年11月30日,國務院批准撤銷城步縣建制,建立城步苗族自治縣,系全國第二個苗族自治縣。1986年1月27日,國務院批准撤銷邵陽地區建置,實行市管縣體制,城步苗族自治縣劃隸邵陽市。