中國西晉末年席捲長江中下遊地區的一次規模較大的農民起義。

  晉惠帝元康元年(291)開始的八王之亂加深瞭社會危機,促使階級矛盾和民族矛盾進一步激化。統治荊州地區的都督荊州諸軍事、鎮南大將軍、新野王司馬歆“為政嚴刻,蠻夷並怨”,導致瞭張昌起義。

  張昌,義陽(今河南新野)人。他武力過人,好論攻戰,年輕時曾為平氏縣吏。永甯元年(301),在李特起義(見秦雍六郡流民起義義)的鼓舞下,張昌糾合徒黨數千人。晉王朝為鎮壓李特起義,在荊州強征“壬午兵”(因壬午日發佈詔書而得名),調發荊州“武勇”,開赴益州。荊州百姓本不願背井離鄉遠戍益州,加之張昌乘機鼓動,堅決不肯應征。詔書催遣嚴急,凡被征之人在所經郡縣界內停留五日者,郡縣長官撤職。這些武勇到處受到驅逐,走投無路,紛紛屯聚反抗。張昌改名李辰,於太安二年(303)五月在安陸北面的石巖山起義。各地不願遠征的丁壯和就食江夏(今湖北雲夢)的饑民,都踴躍參加。義軍首先攻克江夏郡,又大敗司馬歆派來鎮壓的大軍,立原山都(今湖北谷城東南)縣吏丘沈為天子,更名劉尼,冒充漢朝後代。張昌以相國掌實權,其兄弟皆領兵。江漢人民紛紛響應,旬月之間,眾至三萬。義軍頭著絳色巾,上插羽毛,作戰非常勇敢,分四路進攻。一路黃林率兩萬人向豫州進發,繼而東下,破武昌(今湖北鄂州),斬太守。一路張昌親率大軍西攻宛(今河南南陽),敗豫州刺史軍,並於樊城一戰斬司馬歆,直逼襄陽。一路別帥石冰東破江、揚二州。臨淮(今江蘇盱眙東北)人封雲起兵響應,占領徐州。一路陳貞等南破長沙、湘東、零陵、武陵諸郡(今湖南境內)。這樣,義軍迅速占領瞭長江中下遊的荊、江、徐、揚、豫五州的大部分地區。

  司馬歆被殺後,朝廷派劉弘代歆為鎮南將軍、都督荊州諸軍事,調集大軍,由其部將陶侃率領,進攻張昌的根據地江夏。八月,荊豫地區的義軍失敗。永興元年(304)秋,張昌被俘犧牲。同年三月,徐揚地區的義軍也在周玘、顧秘、賀循等江南豪族武裝和廣陵度支陳敏等官兵的圍攻下失敗。

  這次起義不但直接支援瞭益州的李特起義,而且與北方少數民族的起義遙相呼應,成為動搖和推翻西晉王朝的主要力量之一。起義也沉重打擊瞭荊州地區的封建勢力,迫使新任刺史劉弘采取一些緩和階級矛盾的措施,如抑制豪強霸占山澤的行為,對流入荊土的梁益流民采用“給其田種糧食,擢其賢才,隨資敘用”的辦法,以利於荊州地區政局的穩定和生產的恢復。