南宋政府任命程昌寓为鼎、澧镇抚使兼鼎州知州,负责镇压杨幺起义军。程昌寓分水陆二路扑向起义地区,他从水路前往鼎州,步兵则从陆路开来。当时南宋统治区一片荒芜,无衣无食,而洞庭湖起义地区则生产兴旺,呈现出一片欣欣向荣景象。程昌寓的船队一到龙阳县的鼎口,见有酒坊、猪、羊、鸡、鸭,马上登岸抢劫。起义军立即投入战斗,包围了他的船队,几十家跟随他的官僚地主大多被杀死,随行的工匠被俘,只有狡猾的程昌寓改乘小船逃跑了。在与南宋政府的斗争中,起义军的力量日益壮大,1133年(绍兴三年),杨幺自号“大圣天王”,立钟相幼子钟仪为太子。继续贯彻均贫富等贵贱的主张,获得了广大群众的拥护。东到岳州(今湖南岳阳),西至鼎、澧州,南至潭州,北到荆南府,方圆数千里都在起义军的控制下。
为了和敌人进行长期战斗,杨幺团结夏诚、刘衡、周伦等起义军首领,根据洞庭湖地区河湖交错的特点,在湖旁水边建立水寨,大造战船,实行兵农相兼,水战陆耕战略。起义军在从武陵到沅江县的沅水西侧建立水寨二三十所,杨幺寨是起义指挥部所在地,位于鼎口(今汉寿县西北40里)南岸,背陆面水。他们吸取钟相失败的经验教训,对杨幺寨严加守卫,日夜派人站岗巡逻,敌人的奸细休想进去,南宋政府曾派人刺杀杨幺,但没有得逞。夏诚寨和刘衡寨地理位置最为险要,夏诚寨建立在芷江口,东西北三面临湖,只有西南面临陆地,寨外挖有陷马坑和深沟,官兵即使到了寨下,要拿下寨子也不容易。起义军在水寨里,利用战斗的空隙从事田间劳动,每家每户还养牛、养蚕及猪、羊、狗、鸡。他们将寨内人分成出战人和不出战人,出战人是起义军的基本成员,为贫苦农民,不出战人则是老弱和幼儿及知识分子。他们一面战斗,一面生产,春耕夏种,秋收冬藏,自给自足。水寨呈现出一片欣欣向荣景象。
起义军为了适应水上战斗的需要大造战船。杨幺在俘获程昌寓所带的船队和工匠后,开始建造高大的车船。这种船只体形高大,底部装有轮子,用脚踏动轮子就能激水前进,其行如飞。起义军驾驶这种车船来往江湖之间,回旋方便,犹如水上马车夫,轻松自如。船的两边装有护车板以保护踏轮子的士兵,船上还装有拍竿,长十余丈,上置巨石,下端装辘轳,遇到宋军船只,就转动辘轳,用拍竿将其击沉。起义军利用这种船只和原有的轻便海鳅船相配合,水军力量更加强大。
南宋政府认为威胁其统治的有三股势力,一个是金兵,一个是伪齐刘豫,另一个则是杨幺。和杨幺相比,金人和刘豫在境外为害较浅,杨幺则在心腹,必去之而后快。于是在程昌寓损兵折将后,南宋政府于1134年(绍兴四年)派禁军将领王王燮和建康水师正副都统崔增、吴全率六万水师前来镇压。十一月,他们分两路向起义军进攻,王王燮率水陆军从德山(今常德市南)进攻龙阳起义军的营寨,崔增、吴全则率军埋伏在沅江下游各江口、湖口,准备等沅江上游的起义军战败逃跑到这里时,他们和王王燮军队前后夹击,一举歼灭。如意算盘打得十分美妙,可他们哪知道杨幺早就识破了其诡计,做好了迎战的准备。起义军将计就计,诱敌深入,一面对付上游的敌军,一面放隐蔽着起义战士的船只顺沅江而下迷惑崔、吴军队。崔、吴军埋伏多时,不见上游动静,心中不免着急。这时忽听得其侦察员报告上游有几只空船摇摇晃晃顺流而下,就误以为王王燮在上游打了胜仗,杨幺他们狼狈逃窜,于是争相奔向洞庭湖。当他们行驶到鄱官树湖面时与漂流而来的车船相遇。忽听到战鼓齐鸣,事先隐蔽在车船上的起义军喊声大作,踏车回旋,横冲直撞,迅速将崔、吴军大小数百只船撞没,他们二人也葬身湖底。起义军在下游胜利后,解决了后顾之忧,立即乘胜进攻上游的宋军。王王燮军被起义军打得大败,龟缩在德山营寨里不敢出来。一日之内起义军消灭宋军近万人,战果辉煌。
南宋政府在军事进攻屡次失败的情况下,企图以软的一套分化瓦解起义军。鼎州知州程昌寓、荆湖南北路宣抚使孟庾、湖广宣抚使李纲等人曾多次派人到起义军中招安,遭到杨幺他们的断然拒绝。一次程昌寓派刘醇去招安,刘醇一踏上起义军的船只就被斩杀了。南宋政府的招安活动彻底破产。
伪齐刘豫利用南宋政府的无能,多次派间谍拉拢起义军,引诱起义军和他们合作,顺长江而下共同夹击南宋都城临安。1134年(绍兴四年),伪齐将领李成派间谍到周伦水寨,企图说服起义军和他们联合攻宋,并许愿事成之后,杨幺可以“裂地为王”,其他起义领袖都可以做官发财。起义军不受诱惑,义正词严地予以拒绝。不久伪齐和金统治者又派35人组成的使团到起义军大寨来,随身带着官诰、战袍、金束带之类的东西做礼物,再次要求起义军配合他们攻打宋朝。起义军十分愤怒,一天夜里将他们统统灌醉,杀死后投入江中,狠狠地打击了伪齐和金人的诱降活动,从此金、伪齐间谍再也不敢窜到起义军营寨中来了。起义军的行动表明他们具有强烈的民族感情,决不会为了自己的一点小利,出卖民族利益。
南宋政府在军事进攻和招安失败后,非常担心起义军会和伪齐联合起来进攻临安,为了去掉这一心腹大患,1135年(绍兴五年)派宰相张浚前往湖南布置镇压起义,并将抗金劲旅岳家军从前线调到洞庭湖地区镇压农民起义军。岳飞带军队到达洞庭湖地区后,分析了程昌寓、王王燮失败的原因以及他所率的军队和起义军各自的特点,决定采取以分化瓦解为主,军事进攻为辅的策略。他在洞庭湖的各个要道上驻重兵把守,然而逐渐缩小包围圈,对起义地区实行经济封锁。并在夏季进攻起义军,使其难以从事农业生产,造成起义地区经济困难。岳飞认为王王燮所以失败,就是他没有把握住起义军的特点,以宋朝军队与熟悉地形的杨幺水军硬打硬拼,当然不能取胜。还认为在水上作战是杨幺起义军的特长,他们占有优势,这又恰恰是宋朝军队的短处,要利用投降的起义军去进攻坚持战斗的起义军,使杨幺军内部分崩离析,自相残杀,孤立杨幺,然后他率军一举消灭洞庭湖地区的农民起义军。
岳飞一到洞庭湖区,在军事封锁的同时派人到起义军水寨诱降。由于他的封锁,起义军占领地区日益缩小,已经不可能实行兵农相兼、水战陆耕的战略了。起义军的粮食和日常生活用品日益短缺,一些意志不坚强的起义军首领和士兵开始动摇,散布恐敌言论。起义军领袖黄佐,鼓吹岳飞号令如山,说什么起义军如果与岳家军交战,如同鸡蛋碰石头,只有死路一条,接着就跑到岳飞那里投降了。岳飞见黄佐投降,喜出望外,拍着他的背脊赞扬他识大体,知顺逆祸福。于是岳飞便利用熟习洞庭湖地形和水上战斗的黄佐去进攻留在湖上的起义军,要他相机行事,见可以用利禄打动的起义军就引诱他们投降,态度坚决的则寻机消灭。这年四月黄佐突然袭击周伦大寨,周伦败走,很多起义军战士被杀,陈贵等起义领袖被叛徒俘虏,水寨中的武器、衣物、粮食全被抢走。黄佐这个起义军中的可耻叛徒带着战利品向岳飞请赏,他用起义农民的鲜血和生命为自己捞到了一顶武功大夫的官帽子。岳飞的招降计谋成功了。
岳飞在分化瓦解起义军的同时还布置一些小的战斗,为屡次失败的宋军鼓气,从而给处于困难境地的起义军进一步增加心理压力,以便招纳更多的叛徒,使杨幺更加孤立。他派多次被起义军打得落花流水的败将任士安率军作先锋进攻起义军,引诱起义军出战,自己的精锐部队则埋伏在后面。任士安谎称是岳飞带20万大军前来攻战,起义军一看是老牌败将的军队,不免掉以轻心,突然岳飞的伏军四起,起义军被打得大败。在起义失败的情况下,岳飞又派黄佐去招降起义军的重要领袖杨钦。杨钦在军事失利后,悲观失望,于是投降了岳飞。杨钦投降后,岳飞如获巨宝,高兴地说:“杨钦是杨幺的猛将,他投诚了,杨幺势单力薄了。”于是他给杨钦封高官,让他回到湖中招纳其余的起义军。杨钦说服起义首领全琮、刘诜等人一并投降,又率官兵进攻杨幺大寨,起义军遭受巨大损失。起义军的处境十分困难,但杨幺坚持战斗,拒不投降。他率领起义军驾驶高大的车船,横冲直撞,将官兵的船只撞沉。岳飞只得下令砍伐君山上的树木扎成巨筏子,填塞港道汉口,又将腐木乱草投掷湖中。此时正值夏枯水期,湖水较浅,杨幺大船行动不便。岳飞派人骂阵挑战,起义军气愤不过,就驾船追击,他们一见起义军追来,马上驾小船溜走。由于湖面上的腐木乱草缠绕车船踏轮,起义军行动迟缓,他们便乘机加以袭击,起义军驾船向港口驶去,却被他们事先填塞的大木筏子所阻,前进不了。经过激烈战斗,杨幺水寨被攻破,杨幺投水被俘,不屈而死。
杨幺牺牲后,夏诚坚持战斗,最后,宋军包围了夏诚大寨,夏诚在战斗中牺牲,洞庭湖区的农民起义被岳飞镇压下去了。
岳飞坚持抗金反对向金人屈膝求和,是民族英雄,与宋高宗一伙主张投降有矛盾。但他毕竟是地主阶级中的一员,对南宋王朝无限忠诚,绝不允许农民起来推翻南宋王朝的统治。因此在镇压农民起义和维护封建制度这一根本问题上,和宋高宗完全是一致的。因而当南宋王朝将他从抗金前线调到洞庭湖区镇压杨幺起义军时,他毫不犹豫地向起义军进攻。
杨幺、夏诚牺牲后,起义军余部在雷德进兄弟率领下继续战斗,历经一年多时间,才最后失败。
钟相、杨幺领导的湖湘地区农民起义是继王小波、李顺、方腊起义后又一次规模巨大的农民反抗怒潮,先后坚持斗争长达五年多,沉重地打击了南宋政府的黑暗统治。他们针对贫富不均、贵贱不等的封建制度,提出了均贫富等贵贱的政治主张,在我国农民战争史上树立了一个新的里程碑。