綠林軍首先向王莽統治力量薄弱的附近鄉村發展,數月內,即組成一支八、九千人的農民武裝。地皇二年(21年)四月,王莽命荊州牧率精兵2萬,前往綠林山圍剿。王匡等串軍主動迎擊,在雲杜(今湖北京山)縣境大破莽軍,殲敵數千,並繳獲莽軍全部輜重。隨後,義軍乘勝連克竟陵(今湖北
潛江西北)、雲杜、安陸(今湖北安陸西北),回師綠林山時,隊伍已發展至5萬人。三年,王莽遣太師王匡(與義軍首領王匡同姓名)、將軍廉丹率兵10萬向東進攻
樊崇等領導的活動於今山東一帶的赤眉義軍(參見赤眉農民起義),同時,另遣將軍
嚴尤、
陳茂率軍進攻綠林軍。 時綠林山一帶瘟疫流行,為離開疫區,並避免同嚴尤軍決戰,綠林軍遂乘赤眉軍在成昌(今山東
東平西)連挫莽軍之機,分兵向外發展。一路由王常、成丹、
張印等率領,向西南進入南郡(治江陵,今屬湖北),稱“下江兵”;一路由王匡、王鳳、馬武及朱鮪等帶領,向北進入南陽郡(郡治宛縣,今河南南陽市),稱“新市兵”。七月,新市兵進攻隨縣(今
湖北隨州市),平林(今湖北隨州巾東北)人
陳牧、
廖湛等數千人起義回響,稱“
平林兵”。當綠林軍進軍至舂陵(今湖北棗陽南)附近時,
劉縯、
劉秀及
李通、李軼等亦率宗族賓客子弟七、八千人起事,號稱“舂陵兵”。十一月,舂陵、新市、平林三部合兵,在長聚(今河南
唐河境)、
棘陽(今河南
南陽市南)等地接連獲勝,劉縯乘勝圍攻宛城(今河南南陽市),被莽軍甄阜、梁丘賜軍擊敗,乃退保棘陽。莽軍留輜重
於藍鄉(今河南泌陽境),精兵10萬南臨池水(今河南泌陽境)。是時,王常等率領下江兵5000餘人轉戰到宜秋(今河南唐河東南),準備與主力會師。十二月,綠
林軍四部會合,夜襲藍鄉,擊潰莽軍10餘萬人,殲滅2萬餘人,斬殺其主將甄阜、梁丘賜。繼而乘勝向西,在育陽(今河南
新野北),擊潰趕來增援的莽軍嚴尤、陳茂部,斬首3000餘級。嚴尤棄軍而逃。義軍大獲全勝,俘獲大批俘虜及輜重,隊伍發展到10萬餘人。義軍隨即包圍戰略要地宛城。四年二月,綠林軍推加入平林軍的漢宗室
劉玄為帝,建立政權,改元更始。綠林軍建立政權後,力量壯大,士氣高漲,在以主力包圍宛城準備西出武關(今陝西丹鳳東南)圖取關中(指函谷關以西地區)的同時,另由王鳳、王常、劉秀等率2萬人,乘莽軍嚴尤、陳茂部滯留潁川之際,向北推進,牽制莽軍南下。三月,王鳳等先後攻克昆陽(今河南
葉縣)、定陵(今河南郾城西北)、郾縣(今河南郾城西南)等城。是時,王莽感到關中所受威脅嚴重,慌忙變更計畫,將原先用於鎮壓赤眉軍的莽軍主力轉用於南方,遣大司空
王邑急至洛陽,會同王尋徵發郡兵42萬,號稱百萬,企圖一舉攻破宛城,殲滅綠林軍。五月,王邑軍在潁川與嚴尤軍會合,大軍齊向宛城進發。王邑、王尋仗恃兵多勢眾,執意先破昆陽,再破圍宛義軍主力。遂使先行抵達昆陽之部,層層包圍昆陽。義軍由王鳳、王常率八、九千人堅守昆陽,劉秀等率13騎乘夜突出城門,前往郾縣、定陵調集援軍。王邑等揮軍多次進攻,均被守城義軍擊退。六月,劉秀率援軍萬餘人趕到,先以乾餘人衝擊王邑、王尋軍,繼率勇士3000迂迴至昆陽城西,猛攻王邑軍指揮部。王尋、王邑仍恃眾逞強,命其他各營按兵毋動,只率萬餘人迎戰。王尋迎戰不利被迫殺。城內義軍適時出城夾擊,莽軍大亂。時遇大風雷雨,潰水(今葉縣
沙河)暴漲,莽軍溺死數以萬計,其餘潰散。王邑只率數千人逃回洛陽(參見
昆陽之戰)。王莽因主力被殲,調回鎮壓赤眉軍的太師王匡、國將哀章固守洛陽;另遣都尉
朱萌、右隊大夫宋綱防守武關;再以九個將領,號稱“九虎”,統率
御林軍數萬人在
華陰(今陝西華陰東)、回溪(今陝西華陰境)一帶布防,企圖固守洛陽、長安(今陝西西安市西北)要地。義軍在昆陽大捷,攻克宛城後,稍事休整,即於八月分兵兩路北圖洛陽,西奪關中。王匡率主力一部北進,於九月攻占洛陽,俘虜太師王匡及國將哀章。申屠建、
李松率部向西,兵臨武關時,莽軍守將朱萌已降於起兵回響義軍的析縣(今河南西峽)人
鄧曄、於匡,宋綱已被擊斃。華陰“九虎”亦被鄧嘩等擊敗,“二虎”自殺,“四虎”逃亡,只剩“三虎”收集殘兵,退保渭口(今陝西華陰北)京師倉。鄧嘩、於匡大開關門,迎接義軍。李松率部3000抵達湖縣(今陝西潼關東)與鄧嘩合兵進攻京師倉未克。鄧嘩遂遣
王憲率一部兵力北渡渭河,向長安北側迂迴,李松亦分兵一部由偏將軍韓臣率領,向西進攻新豐(今陝西臨潼東北)王莽波水將軍
竇融。王憲部所到之處,莽軍望風歸降。韓臣部一舉攻破新豐,並乘勝追擊竇融至長安。義軍兵臨京師,當地民眾紛起回響,未待義攻城,各部民眾已破城而入。王莽效法秦二世武裝囚徒充軍不成,被義軍及民眾重重包圍在漸台(位於未央宮滄池中)。王邑等相繼喪命,王莽被商人杜吳殺死。新莽政權亡。更始二年二月,綠林軍擁立的更始帝劉玄遷都長安。