明英宗的時候,政府強迫京都附近地區的老百姓養馬,以供軍用。政府是按百姓家中的丁田分派任務,把這些人家稱做“馬戶”。每年政府都要征收小馬,如果是種馬死了或者小馬的數量不足,馬戶都得賠補。在當時,一些田地都被官員霸占去了,草場一天比一天少,飼料十分短缺,馬戶苦於這種孳養,可是地方官又時刻催逼,老百姓實在是走投無路,在這種狀況下,正德四年(公元1509年),河北農民展開了反抗這種苛政的鬥爭。
起義軍的首領楊虎,是一個著名的“響馬”,多次受到官軍的追捕,而劉六、劉七哥倆都是當時的貧苦農民。他們起義後推楊虎為首領,攻打京城南麵的州縣。因為起義爆發在軍馬寄牧的京城附近地區,許多馬戶都參加了起義,起義軍擁有許多馬匹,這樣,行動速度就比較快。官軍因兵弱馬少,對他們無可奈何。地方州縣的官吏不是聞風而逃,就是開門獻城。
起義軍聲勢浩大,攻下文安後,轉著彎兒殺去,回旋在河北廣大地區。所到之處,勢如破竹。地方官不是開城納款,便是望風而逃。從正德六年正月到三月,三個月的時間,義軍便像一陣旋風那樣,在博野、饒陽、南宮、無極、東明、濱州、臨朐、監淄、昌樂、日照、蒲台、武城、陽信、泰安等州縣暢行無阻,還攻下了孔子的老家曲阜。可惜義軍沒有一個明確的政治綱領,他們隻是為反抗壓迫,提出的也僅僅是“替天行道”、“劫富濟貧”這樣的綠林口號。攻下城池後就開倉分糧,沒收縣庫,然後就離開。因而始終也沒建立起一個鞏固的根據地。
明朝廷看義軍聲勢日漸壯大,便派張偉任總兵、馬中錫任提督軍務,率京營兩萬人南下征剿。
義軍為了分散敵人的兵力,決定兵分兩路,一路由劉氏兄弟帶領,一路由楊虎和趙風子帶領,一東一西,既分兵又呼應,牽製官軍。劉六、劉七一隊首先攻掠山東、接著又進入河南,便南下抵達湖廣、江西地區,然後仍由原路殺回來,回到霸州。幾個月時間,轉戰數千裏。另一股義軍在楊虎和趙風子率領下,從河南轉入山西,縱橫幾千裏,所向披靡。義軍打起仗來,騎兵像潮水一般,直陷敵陣,個個驍勇。
後來兩路義軍在武安(在今河北)會師。稍事休整,又合兵北上,直逼北京。正德皇帝令兵部尚書何鑒急調三路人馬保衛京都。這三路人馬,一是各地衛所駐軍,二是守衛京都的京軍,三是各邊鎮的邊兵。
義軍打到信安鎮(天津以西),看北京守衛太強,便又分兵南下,一去山東,一去河南。明廷一看義軍退走,便以太監穀大用總督軍務、兵部侍郎陸定為監軍,率領三路大軍,撒開大網,向義軍圍剿過來。此時官軍人數超過義軍幾十倍,形勢對義軍很不利。
正德六年十一月,楊虎在河南夏邑縣渡過小黃河時,遭到伏擊船隻沉沒,楊虎因不會遊泳,溺死在水中。楊虎死後,義軍在趙風子主持下,改變過去“響馬”式的組織結構,組成28個營的正規軍,推楊虎的結義弟兄劉惠為奉天征討大元帥,自己任副元帥,樹起“虎賁三千,直抵幽燕之地”、“龍飛九五、重開混沌之天”的大旗。說明義軍從單純的反抗壓迫,變為要決心推翻明朝的統治了。
正德七年二月,趙風子部已有步卒13萬人,騎兵5000了。當年閨五月,趙風子義軍在河南南召與官軍大戰,義軍寡不敵眾,全軍潰敗,義軍將領或陣亡或被擒。
楊虎、趙風子一路義軍被官軍消滅了,官軍便集中全部力量來圍攻劉六率領的義軍。當時劉六等想去塞北,但北邊各關口都被嚴密封鎖,隻好又折回頭來南行,輾轉來到湖廣。這裏多是江河湖泊,騎馬很不方便,義軍隻好棄馬登舟。但北方義軍長於騎戰,卻多不識水性。在一次戰鬥中,劉六不慎中箭,他不願作俘虜,投江自殺了。
八月,劉七義軍被官兵逼到狼山。狼山在通州(今南通州)城南,背靠大江,險峻高聳。在山顛峰麓,義軍與官軍死戰,官軍越戰越多,有時竟是幾十名官軍拚戰一名義軍,最後義軍全部英勇戰死了,劉七也投江而亡。
劉七站在山顛,滿身血跡、橫刀微笑,他轉身一躍,宛如一隻黑色的燕子,直朝下麵的大江墜去。
明廷為對付河北農民起義軍不得不調集各地衛、所,京營和邊兵幾十萬人,耗軍費數百萬兩。明政府把抓住的義軍都進行殘暴狠毒的處治,有的義軍將領處以殘酷的剝皮之刑。
“響馬”起義軍被鎮壓下去了。但他們在兩年的時間裏,轉戰河北、河南、江南七個省,襲破幾十座州縣,殺了上千名貪官汙吏和土豪劣紳,把反抗的種子播撒在人們心中。