有了自己的地盘和人马,方腊建立自己的政权,他自号“圣公”,建元“永乐”,置官吏将帅,级别分为六等,以各种颜色的巾饰为别。
起义爆发后,两浙路提点刑狱张苑急报朝廷,而宰相王黼不以为然,反而严厉斥责张苑“张皇生事”。义军声势越来越大,两浙路制置使张建派兵马都监蔡遵、颜坦统精兵五千进剿青溪。方腊据险坚守,诱敌深入,在青溪县息坑(今浙江淳安西)全歼官军并斩杀蔡遵、颜坦。随后,乘胜进取青溪县,知县陈光弃城而逃,俘获县尉翁开。起义军很快发展到上百万人,声势十分浩大,在短短三个月内,接连打下了歙州、杭州等六州五十二县,包括今浙江省全境和安徽、江苏南部、江西东北部的广大地区,震动了整个东南。
义军骤然兴起,切断了宋王朝的经济命脉,赵佶惊恐万状。他一面下诏“罪己”,令撤销苏、杭造作局和停运花石纲,罢黜朱勔父子兄弟的官职,妄图松懈义军的斗志;一面派童贯任江、淮、荆、浙等路宣抚使,谭稹任两浙路制置使,调集京畿的禁军和陕西六路蕃、汉精兵约二十万,南下镇压起义。
宣和三年正月,童贯到达江南后,依赵佶事先的布置,派兵进驻金陵(今江苏南京)和镇江(今属江苏)两大重镇,扼守江防。而后兵分两路:东路由谭稹、王禀等统领,欲经苏州、秀州进攻杭州;一路由刘延庆、刘镇等分别率领,自宣州(治今安徽宣城)直进歙州。两路军约定会师于睦州。赵佶随后又派郭仲荀、姚仲平另统一军南下浙东,以为接应后援。
方腊占据杭州后,未采纳太学生吕将的建议,先进兵江宁(今江苏南京),抢占长江天险,阻止官军过江增援,而是将主力调集到南面,进攻婺州、衢州。这一战略上的失误,给官军的大举进剿提供了乘虚而入的有利时机,而起义军自起兵以来在战场上的主动权亦由此而丧失。
正当童贯统兵南下之时,方腊也正分兵南征北伐。北伐义军兵分两路:东路由方七佛领八万义军一举攻克崇德县,进围秀州,又派一支队伍进入湖州境内。秀州统领王子武据城顽抗,义军攻城不下。正在激战时,王禀所率东路军亦推进到秀州城下。方七佛腹背受敌,与数倍于己的官军拼命厮杀,方七佛身负重伤,所部九千余人阵亡,最后突围退守杭州城。
秀州之战失利,杭州失去屏障。二月,官军包围杭州,义军经过苦战,因粮尽援绝,被迫退出杭州。杭州失守,形势急转直下。三月初,义军再次进军杭州,不胜。官军杨可世、刘镇部攻陷歙州,王禀部攻陷睦州。四月初二,衢州失守,义军将领郑魔王被俘。后婺州失陷。两日后,王禀部攻陷青溪县。方腊带领义军被迫退守帮源峒。四月下旬,王禀、刘镇等各路官军会合,总兵力二十余万人层层包围帮源。
此时,方腊起义军也有二十多万人,他们凭借险要的地势,四下设置陷阱和埋伏,准备殊死抵抗。官军曾向门岭发起过攻击,但未能奏效。刘镇又领精锐自小路偷袭门岭。门岭失守,帮源峒被打开了一个门户。
官军以“纵火为号”,分别由刘镇、王禀率部从两个方向进攻帮源峒。起义军顽强抵抗。从清晨一直激战到深夜,有万余名义军战死,方腊退守到一个石洞中。
在原里正方有常之子方庚等人引领下,军校韩世忠率一支人马猛攻起义军据守的石洞。八大王指挥义军与官军殊死搏斗,七万多义军将士先后壮烈牺牲,方腊及其妻邵氏、子方亳(二太子)、丞相方肥以及八大王等三十多名首领力竭被俘,被解往杭州,又押解到汴京,八月二十四日方腊父子遭杀害。
“方腊虽就擒,而友党散走浙东,‘贼’势尚炽”。童贯派郭仲荀、刘光世、姚平仲等领兵分路镇压。五月,台州仙居县义军由俞道安带领,从温州永嘉县楠溪攻占乐清县,义乌县义军据天仙峒,寿昌县义军据月溪峒,与官军激战,天仙峒、月溪峒相继陷落。兰溪县灵山峒义军胡姓、祝姓二将与官军刘光世部奋战,胡、祝等一千六百多人战死。越州剡县裘日新与官军姚平仲部作殊死战,裘日新在桃源(今浙江嵊县南)战败牺牲。
闰五月初,朝廷以方腊起义军已遭镇压,北方与辽战事正紧,下令将大部分官军调往北方,仅留两万军队继续围剿剩余的起义军。官军在姚平仲的统领下攻陷台州仙居境义军据点招贤(今浙江临海西)等四十余峒。方五相公、方七佛部义军接连失利。六月,仙居义军吕师囊转移至黄岩,宋军折可存部自三界镇追击。义军扼守断头山。官军以轻兵从山后偷袭,义军战败,吕师囊等三十多名首领牺牲。七月,俞道安部义军号十万人,自永嘉(今属浙江)转战乐清(今属浙江)等地,并于乐清重创官军,随即又攻打温州(今属浙江),攻城三十多天未破,遂转入处州境内永康山谷中。十月,官军进山围剿,俞道安战败牺牲。
此后,义军余众在各地继续坚持战斗,杀官吏,捕官军,直到宣和四年三月,才基本被镇压下去。
在起义前夕,方腊对当时的社会形势做过一番分析判断,他的分析判断有一部分是正确的,有一部分则完全错误。他认为当时朝廷在江南设造作局,大搞“花石纲”,使东南之民不堪忍受,人心思乱,只要揭竿而起,民众必然闻风响应,“旬日之间,万众可集。”这个分析非常正确,后来也得到了事实的验证。另外,他还指出,“守臣闻之,固将招徕商议,未便申奏,我以计縻之,延滞一两月,江南列郡可一鼓下也。”这个判断也很准确,方腊发动起义后,各地官员忙于应付,无暇将详情上奏朝廷。直至宣和二年十二月,警奏才上报朝廷,当时北宋朝廷正调集兵力以图北伐,大臣王黼“匿不以闻”。朝廷的无动于衷,使起义军争取到宝贵的时间,攻占了一个又一个州县,达到了“一鼓而下江南列郡”的目标。
然而,方腊认为朝廷从决策到调集兵马粮草“非半年不可”,完全是错误的判断。自陈遘上奏后,朝廷在一个月内就已调集近二十万大军开赴前线,打了起义军一个措手不及。北宋的禁军非地方军可比,是宋军的精锐,起义军虽然号称百万,但都没有受过正规的训练,而且各部队分散在各地,各自为战,缺乏统一的指挥,最终被宋军各个击破。