秦灭楚国后,苗族先民向西南迁逃避入山区,城步也迁入大量苗族,从此城步苗族开始了漫长的反压迫反征服的斗争。
据《后汉书·本纪》记载:“孝桓帝元嘉元年(151年)秋七月,武陵蛮叛。”道光《宝庆府志·大政纪一》载:“武陵蛮詹山等四千余人反叛,拘执县令,遣窦应明伐之,筑城守御。蛮亦屯结深山,有保都梁县山中者,号曰武冈”(时城步属武冈)。到唐代宗广德元年(763年),湘西南地区爆发了夏永领导的各族起义,邵州的武冈是起义中心之一,唐军多次进行镇压,终未能将起义扑灭。直到建中元年(780年),唐德宗派湖南观察史李皋率兵一万余人进攻,并调荆州、黔州、洪州、桂州兵马“助剿”,又从各处调兵五万余人进一步施加压力,改“剿”为“抚”,对义军各部实行分化瓦解,终使义军接受了“招安”。
唐末政治腐败,国势由盛转衰,各藩镇乘势纷纷拥兵自立,割据称雄。当时割据湖南的马殷不断派兵征伐五溪少数民族领地,不少首领纷纷献土“归附”,惟徽州(今绥宁、城步)、诚州(今靖州)首领潘金盛、杨承磊为了维护以苗族为主的“飞山峒蛮”的自主自立权利而奋起抗争。乾宁四年(897年)年马殷进军飞山峒,潘、杨率义军主力偷袭马楚军的后方重镇武冈(时设治于城步),马殷急调五千衡山兵救援。起义军退守飞山峒。直到乾化元年(911年)正月,吕师周率楚军击败了进攻武冈的义军,并抄小路偷袭飞山峒,义军伤亡惨重,潘、杨被俘牺牲,义军三千多人被杀戮。杨承磊族人杨再思迫于楚军威逼,为保民族生存,只好以其地附于楚,被奉为诚、徽州剌史。
据《续资治通鉴》卷143、174载,宋朝庆历三年(1043年),宋军竞颁布“杀一蛮人,赏钱十千”的告示,鼓励宋军多杀“蛮人”。道光《宝庆府志·大政纪·四》记载,宋嘉祐三年(1058年),武冈(县治在今城步)苗民起义,被邵州知州郭逵镇压,九十个团峒被毁。北宋元祐二年(1087年),绥宁、城步、靖州等地苗族人民在其首领杨晟台的领导下举行起义,举起了保“封土”斗争的大旗。宋廷派湖北转运使唐义顺率一万多官兵镇压。义军联合广西融州苗人共同抗敌,宋军大败,大将王安阵亡。宋廷又派谢麟、李湜督军镇压义军。谢、李和苏辙上书朝廷,极力主张放弃在苗族地区设置州县,缓和民族矛盾。宋哲宗下诏对杨盛台免于“追讨”,“诸路所开道路,始置砦堡并废”,从而保住了“封土”,维护了以苗族为主体的少数民族自主自立的权利。
据《宝庆府志》卷二和《武冈州志》卷二及《宋史·地理四》等文献记载,宋绍兴元年(1131年),城步再次爆发了以杨再兴及其子正修、正拱所领导的苗、瑶、侗各族人民起义,并迫使“绥宁县治移武阳砦”。绍兴二十四年(1154年)七月,南宋“遣边前军统制李道”征讨,义军终因寡不敌众失败,杨再兴父子不幸被俘牺牲。这次起义前后持续二十余年。
明朝建立不久,就派兵到西南各民族地区骚扰人民,勒索钱财,霸占田地,因而苗族人民反苛派、反卫所屯田、反官吏的斗争不断发生。明正统元年至天顺年间(1436—1464年),城步终于爆发了以蒙能、李天保领导的湘、桂、黔三省边境苗民大起义。义军以城步横岭峒和广西蒙固峒为根据地,先后攻下新宁、绥宁、新化、靖州、会同等州县。至景泰元年(1450年),义军势力西至贵州播州(今遵义)、隆里,东至湖广衡州(今衡阳),北至沅州(今黔阳),南至桂北。这年冬天,明廷遣大军前往天柱、靖州、东山、临口、城步、武冈等地镇压,义军退守广西。景泰五年(1454年)九月,蒙能率义军五万人打回黔东。景泰七年(1456年)四月,蒙能率兵攻打平溪卫(今贵州玉屏县)时被官军火枪击中身亡,义军拥立李天保为首领,蒙能之子蒙聪为元帅,以城步横岭峒为根据地,继续坚持斗争。李天保自称“武烈王”,用蒙能所留之银印作敕书,制定了年号“建元武烈”,筑将台高九丈余,悬挂黄白旗,建立真龙殿,设立长坪府大寨县,称要“攻武冈,直抵湖广至南京”登殿。后率义军与明廷总兵官方瑛的七万余官兵鏖战五年,周旋于湘、桂、黔三省边区。天顺五年(1461年)闰十一月,起义失败,李天保在贵州清水坪(绞洞)被俘,后在北京遇害。
李天保起义失败后,许多达官显贵乘苗民起义失败之机,大肆侵占民田,欺压苗民。五溪各族人民被迫不断举行反抗斗争。弘治十四年(1501年),城步、绥宁等地苗族人民在武冈莫宜峒大地茶园(今城步江头司)苗酋李再万的领导下举行起义,义军张挂黄旗,设立了天王、总兵等名号,李再万号称“天王”,聚众数万,攻城夺地。他们将官府霸占的良田分给苗民耕种,并对那些作恶多端的豪强地主乡绅进行镇压。据《城步县志》载,义军“靖州杀了刘巡检,武冈杀了欧战辉,次岩杀了李员外”,民心大快。苗民纷纷参加起义军,起义军很快控制了五峒四十八寨和广西义宁、新安等地,声势震动朝廷。明廷急遣湖广巡抚阎仲宇、总兵徐琦领兵六万五千余人,从武冈、绥宁、全州、兴安、义宁分兵八路进剿,截杀义军,义军抢占岩险,立栅自固,巧用滚木、垒石及长枪、药矢等奋力抗敌。因叛徒告密,官军抄小路潜至横龙界和大侯,攻入义军大本营大地茶园,苗军败走湘桂接壤的黄墙、炮溪二山,被明军围困,伤亡惨重。第二年二月,苗军万余人趁冰雪封山之机沿藤而下匿于吊丝洞中,雪化后,明军上山断藤堵洞,苗军全部因饥冻死于洞内。据当年参与镇压苗民起义运动的刽子手吴宗周奏《处理城步蛮事宜疏》所载,城步五峒四十八寨原约有五六万人口,镇压后,尚活一万人。可见镇压之残酷,苗民死亡之严重。李再万起义被镇压后,明廷深感其统治在千里苗疆鞭长莫及,乃及时调整苗民政策,于弘治十九年(1502年)在今城步北境首次实行“改土归流”,大批苗民被编入户籍册,结束了“民不上丁,田不上丈”的历史,使城步成为全国最早“改土归流”的苗族,并于弘治十七年(1504年)划武冈、绥宁地设置城步县。
明朝灭亡后,清朝统治者沿袭了明朝后期的制度。至乾隆初年,城步土地兼并厉害,佃农人数激增,丁徭负担沉重,且官吏仗势欺民,迫使苗、侗、瑶等各族人民不断起来反抗。乾隆五年(1740年),粟贤宇、杨清保在城步横岭峒和莫宜峒发动苗瑶起义,他们和广西龙胜一带的侗人吴金银、苗人张老金等起义军互相呼应。清廷急派镇筸 镇总兵刘策名和盐驿道马灵阿进剿起义军,官军大败。同年七月,清廷派贵州总督、总理苗疆钦差大臣张广泗统兵一万三千人,征剿义军。起义军英勇抵抗,终因寡不敌众而失败,杨清保、粟贤宇先后被俘,壮烈牺牲。此后,清军血洗苗寨,残杀苗、瑶五千余人,劫掠妇孺五千余人。据《档案史料》(上册)记载,在这次苗民大起义中,城步共有二万余苗民被朝廷斩杀。而那些被抓获的义军家属和无辜苗民,也被分发到长沙、宝庆、辰州、沅州等府,转发各州县“晓谕土著人等,缴价承买,听其或为妻小,或为子女,或为服役。”将所得“价银”分赏奋勇兵丁。
城步苗族是一个历尽磨难、英勇不屈的民族。据史料记载,城步自三国建兴三年(公元225年)诸葛亮南征九溪十八峒至清末近一千七百年间,城步境内共爆发过大小起义和反抗斗争上百次之多。由于历史条件的限制,这些斗争均以失败告终,没能改变自己被压迫被奴役的地位,但还是在一定程度上打击了当时的统治者,在一定范围内和一定时间内赢得了民族的自立自主。