明末起義軍在崇禎一朝席捲整個北中國,到了南明時代又成為抗清的主力軍。這支軍隊的戰鬥力不容小視。關於這支軍隊戰鬥力這一點上卻眾說紛紜,即出現在前期數千明軍擊潰數萬數十萬起義軍的情況。又常出現起義軍敢於和明軍精銳甚至清軍主力堂堂而陣甚至不落下風的情況。所以對於農民軍的戰鬥力也不能簡單的一概而論。

提到明末農民起義軍最值得注意的是農民軍的機動能力。​明史左良玉傳中就有這樣的記載“賊介馬馳,一日夜數百里。我步兵多,騎少,行數十里輒疲乏,以故多畏賊”這段文字的記載是在崇禎末年的情況。但是在早期起義軍的機動能力依舊令人矚目,在關乎起義軍生死存亡的崇禎六年的黃河突圍之戰中,起義軍主力在一夜之間突過黃河天險,這樣的行動效率雖然有置之死地而後生的那種危急反應。但是也證明起義軍在機動能力上確實有自己的獨到之處。要知道當時起義軍連同自己的家屬有十萬之眾,能在一夜之間組織這樣眾多的人馬渡過剛剛結冰的黃河無疑是很考驗一支軍隊的組織能力的。起義軍的機動能力,明軍中圍剿起義軍最久戰績最顯著的三邊總督洪承疇有切身體會,洪承疇在奏摺中說:“ 先時賊避兵逃竄,今則迎兵對敵,左右埋伏,更番迭承,則剿殺之難也。賊人人有精騎,或跨雙馬,官兵馬三步七,則追逐之難也。 ”可見起義軍維持機動能力的主要方法是大批次裝備戰馬。根據明軍的戰報也可以一探究竟,崇禎十一年三水之戰,孫傳庭大破起義軍戰場上的繳獲物資主要為馬騾727匹,鎧甲185副,武器1652件。而事後招降起義軍 有3050人,獻出馬騾3021匹。從這兩個資料來看,起義軍馬騾的配備極高。而根據《平寇志》也能看出起義軍戰馬數量之多。流寇以馬為家,大頭領有六七十騎,或百騎。小頭領亦二三十騎。但起義軍卻有嚴格的騎乘紀律,平時所乘止騾,其馬不輕騎,留為戰用。可以看出起義軍時很重視休養馬力的。起義軍在轉移時同樣很有策略規定:“唯以妻子牽之,衣服婦女器械等項,各載以驢,團聚同行曰老營”這樣的方式進行轉移,速度極快,能很迅速的擺脫官兵的追擊。而當時明軍官兵卻是什麼情況呢? 官兵馬三步七,首先戰馬數量就不及起義軍。即便是騎兵也就只有一人一騎,至賊營不過五六十里,亦二三十里,人馬不飢則倦。這樣的狀態,自然是很難與起義軍作戰的。

而起義軍更重要的是內部團結。《平寇志》上說百萬之眾,唯闖馬首是瞻。農民軍的內部結構是,首領被稱為老掌家,每個管轄二三十個老管隊,一個老管隊管轄六,七十或四,五十個小管隊。每個小管隊又管轄一,二百或者三,四百個管隊。而最小的被稱為管隊,一個管隊有二十人。掌盤子作為全軍的總頭目自己手上有八、九十家丁,還有三五十個負責巡邏偵查的夜不收。農民軍極其重視偵查,所以每個隊中都有自己的夜不收。起義軍的繼承規則是掌盤子犧牲了就重新由營中的人推舉一人作為新的掌盤子。下面的各隊都是這樣。在財產分配上,如果丈夫戰死,他的妻子就分配給其他人,子女也由大家一起養育,馬匹這些財產留給犧牲者的兒子。沒有後代的就重新分配。起義軍無疑是具有很強的地域性的,裡面的掌盤子大多都是延安人。

而起義軍在行軍上也是有自己的規則。每天下午時各隊各營,派一人到掌盤子(首領)處議話。全軍的行動都聽首領一人的意見,首領命令再次駐紮就駐紮,命令轉移就轉移。權利高度集中。行軍也是聽到雞鳴時就要準備起行,在起行時掌盤子會大吹大擂,以鼓舞士氣。行軍時掌盤子的旗纛在前,各隊依次在後。在行軍順序上也有安排,有時是頭兩隊當前,四五隊催後(負責掩護)六七隊兩邊迅押,其餘的居中。這樣做無疑會大大提高行軍中的安全係數。在中午休息吃飯時也是有條不紊,派一人在路口高聲大喊“某隊在此”則此隊人馬往該路去。在第二天又會調整順序,這樣週而復始。所以起義軍在行軍過程中往往是極為謹慎,當然這也是經過血的教訓獲得的。起義軍在早期作戰中經常遭到明軍的伏擊。所以到了後來起義軍極其重視行軍的防護。但是即便如此起義軍依舊存在一個很大的隱患。那就是起義軍的首領過於靠前,在起義軍作戰中經常出現首領被明軍和後來的清軍伏擊的情況。比如崇禎六年,鄧玘所率領的川軍就在首陽山射殺農民軍首領紫金梁。紫金梁是當時農民軍的盟主,而這樣的關鍵人物居然被明軍輕易射殺足以說明農民軍在指揮上的漏洞了。崇禎九年,明軍在盩厔俘虜高迎祥。到了後來的南明時期,李自成被鄉兵伏擊殞命於九宮山。張獻忠檢視被清軍射殺於陣前都是由於首領過於前突所致。

在紮營時農民軍同樣很注意。紮營以火為號,晚宿床前,各置一大火,總門前亦置一大火。這樣做都是為了防範官兵夜襲。不但在各處設定燈火。起義軍還想到了設定假營地的方法來誤導官兵。很多時候,真的營地都在假營地的十多里外。一旦要長時間駐紮,農民軍會預先設立警戒哨,哨探為每隊選一人,登高而望。一旦看到有動靜就通知塘馬,告訴後面的主力。往往在明軍突襲時,起義軍卻已經有了準備。所以經常是偷雞不成蝕把米。

起義軍對於民眾也是有區分的。並不是簡單的殺掠。遇到富戶,就將其財產全部榨取之後斬殺。但遇到醫生或有技術的工匠,起義軍不會予以斬殺。有技術的工匠如裁縫就編入裁縫隊,銀匠入銀匠隊。無業遊民則編入打糧隊。粗蠢有力者被編入打馬草隊。強壯有戰鬥力的人就給弓馬刀槍。而那些不能作戰的也不輕易殺掠,就將其裹挾,但不允許私自離開。一旦發現有人私自離開被抓捕者就會立刻遭到斬殺。這樣的結果往往使農民軍的數量變得極為龐大,經常達到數萬數十萬甚至百萬之眾。但是起義軍中真正有戰鬥力的卻不是那些裹挾的民眾。而是那些數量有限但戰鬥經驗豐富的逃兵,逃卒,降兵組成。起義軍中戰鬥力最強的高迎祥部就是這樣。明朝官吏稱高迎祥軍多降丁、甲仗精整,部伍不亂。所以明軍一直把高迎祥軍作為重點打擊物件。

到了崇禎末年,進入起義軍中的潰軍,降兵格外多。隨著明朝國勢日衰,進入起義軍中就不僅僅是普通的逃兵,飢兵。更有來自陝西的將門子弟。在 《懷陵流寇始終錄》中就記載了這樣的一個現象“一時賊首,多邊軍之豪及良家世職,不欲以姓名聞,恐為親族累,固相率立諢名”。 所以到了李自成在與明軍作戰時能堂堂而戰是採用的戰術是“三堵牆”。三堵牆戰術要求臨陣,列馬三萬,名三堵牆。前者返顧,後者殺之。戰久不勝,馬兵佯敗誘官兵,步卒長槍三萬,擊刺如飛,馬兵回擊,無不大勝。

起義軍中更重要的是平均主義盛行,官兵之間幾乎不存在什麼隔閡。當時作為農民軍首領的李自成與士卒同甘共苦, 在飲食上“粗糲與眾共之” 。在作戰上起義軍首領大都身先士卒。這樣的戰鬥狀態是處於衰敗中的明朝軍隊所不能比的。所以到了最後,農民軍無論是在人員素質,組織結構還是戰術修養上都全面勝過明軍。但農民軍在應對清軍時卻驚奇的發現自己已有的戰術在新的敵人面前似乎完全失效了!