明英宗的时候,政府强迫京都附近地区的老百姓养马,以供军用。政府是按百姓家中的丁田分派任务,把这些人家称做“马户”。每年政府都要征收小马,如果是种马死了或者小马的数量不足,马户都得赔补。在当时,一些田地都被官员霸占去了,草场一天比一天少,饲料十分短缺,马户苦于这种孳养,可是地方官又时刻催逼,老百姓实在是走投无路,在这种状况下,正德四年(公元1509年),河北农民展开了反抗这种苛政的斗争。
起义军的首领杨虎,是一个著名的“响马”,多次受到官军的追捕,而刘六、刘七哥俩都是当时的贫苦农民。他们起义后推杨虎为首领,攻打京城南面的州县。因为起义爆发在军马寄牧的京城附近地区,许多马户都参加了起义,起义军拥有许多马匹,这样,行动速度就比较快。官军因兵弱马少,对他们无可奈何。地方州县的官吏不是闻风而逃,就是开门献城。
起义军声势浩大,攻下文安后,转着弯儿杀去,回旋在河北广大地区。所到之处,势如破竹。地方官不是开城纳款,便是望风而逃。从正德六年正月到三月,三个月的时间,义军便像一阵旋风那样,在博野、饶阳、南宫、无极、东明、滨州、临朐、监淄、昌乐、日照、蒲台、武城、阳信、泰安等州县畅行无阻,还攻下了孔子的老家曲阜。可惜义军没有一个明确的政治纲领,他们只是为反抗压迫,提出的也仅仅是“替天行道”、“劫富济贫”这样的绿林口号。攻下城池后就开仓分粮,没收县库,然后就离开。因而始终也没建立起一个巩固的根据地。
明朝廷看义军声势日渐壮大,便派张伟任总兵、马中锡任提督军务,率京营两万人南下征剿。
义军为了分散敌人的兵力,决定兵分两路,一路由刘氏兄弟带领,一路由杨虎和赵风子带领,一东一西,既分兵又呼应,牵制官军。刘六、刘七一队首先攻掠山东、接着又进入河南,便南下抵达湖广、江西地区,然后仍由原路杀回来,回到霸州。几个月时间,转战数千里。另一股义军在杨虎和赵风子率领下,从河南转入山西,纵横几千里,所向披靡。义军打起仗来,骑兵像潮水一般,直陷敌阵,个个骁勇。
后来两路义军在武安(在今河北)会师。稍事休整,又合兵北上,直逼北京。正德皇帝令兵部尚书何鉴急调三路人马保卫京都。这三路人马,一是各地卫所驻军,二是守卫京都的京军,三是各边镇的边兵。
义军打到信安镇(天津以西),看北京守卫太强,便又分兵南下,一去山东,一去河南。明廷一看义军退走,便以太监谷大用总督军务、兵部侍郎陆定为监军,率领三路大军,撒开大网,向义军围剿过来。此时官军人数超过义军几十倍,形势对义军很不利。
正德六年十一月,杨虎在河南夏邑县渡过小黄河时,遭到伏击船只沉没,杨虎因不会游泳,溺死在水中。杨虎死后,义军在赵风子主持下,改变过去“响马”式的组织结构,组成28个营的正规军,推杨虎的结义弟兄刘惠为奉天征讨大元帅,自己任副元帅,树起“虎贲三千,直抵幽燕之地”、“龙飞九五、重开混沌之天”的大旗。说明义军从单纯的反抗压迫,变为要决心推翻明朝的统治了。
正德七年二月,赵风子部已有步卒13万人,骑兵5000了。当年闺五月,赵风子义军在河南南召与官军大战,义军寡不敌众,全军溃败,义军将领或阵亡或被擒。
杨虎、赵风子一路义军被官军消灭了,官军便集中全部力量来围攻刘六率领的义军。当时刘六等想去塞北,但北边各关口都被严密封锁,只好又折回头来南行,辗转来到湖广。这里多是江河湖泊,骑马很不方便,义军只好弃马登舟。但北方义军长于骑战,却多不识水性。在一次战斗中,刘六不慎中箭,他不愿作俘虏,投江自杀了。
八月,刘七义军被官兵逼到狼山。狼山在通州(今南通州)城南,背靠大江,险峻高耸。在山颠峰麓,义军与官军死战,官军越战越多,有时竟是几十名官军拚战一名义军,最后义军全部英勇战死了,刘七也投江而亡。
刘七站在山颠,满身血迹、横刀微笑,他转身一跃,宛如一只黑色的燕子,直朝下面的大江坠去。
明廷为对付河北农民起义军不得不调集各地卫、所,京营和边兵几十万人,耗军费数百万两。明政府把抓住的义军都进行残暴狠毒的处治,有的义军将领处以残酷的剥皮之刑。
“响马”起义军被镇压下去了。但他们在两年的时间里,转战河北、河南、江南七个省,袭破几十座州县,杀了上千名贪官污吏和土豪劣绅,把反抗的种子播撒在人们心中。