这一次水战,也许是中国有史以来规模最大的一次。两军主力苦战到三十六天之久。这一战的结局,决定了两雄的命运。
在会战开始前四天,元璋留下伏兵,把鄱阳湖到长江的出口封锁,堵住敌人的归路,关起门来打。两军的形势,一边号称六十万,一边是二十万。水军船舰,友谅的又高又大,联舟布阵,一连串十几里。元璋的都是小船,要仰头才能望见敌人,两下比较,就显得渺小可怜。论实力和配备,都是元璋方面居劣势。但是,他也有便宜处。就士气说,友谅大军在南昌顿挫了三个月,寸步进不得,动摇了必胜的信心;元璋方面则千里救危城,生死关头决于一战,情绪不大相同。就船舰说,数十条大舰联在一起,转动不便;小船进退自如,运用灵活,在体积方面是劣势,运动方面却占优势。就指挥而论,元璋有经验丰富的幕僚,作战勇敢的将帅,上下一心;友谅性情暴躁多疑,将士不敢贡献意见,发生内部裂痕。更重要的是补给,元璋军队数量少,有洪都和后方源源接济;友谅军的后路被切断了,粮尽士疲,失去斗志。
元璋军的主要战术是火攻,用火炮焚烧敌方的大舰,用火药和芦苇装满几条船,敢死队驶着冲入敌阵,点起火来,和敌方几百条战舰同归于尽。接战时分水军为十二队,火铳长弓大弩分作几层,先发火铳,再射弓弩,最后是白刃战。短兵相接,喊杀震天,从这船跳到那船,头顶上火箭炮石交飞,眼睛里一片火光,一团刀影,湖面上是漂流着的尸首,在挣扎着的伤兵,耳朵里是轰隆的石炮声,劈啪的火铳声。友谅船红色,元璋船白色,一会儿十条白船围着红船,一会儿又是红船围着白船,一会儿红船白船间杂追赶。有几天白船像是占了上风,又几天红船又得优势。元璋激励将士苦战,多少次身边的卫士都战死了,坐舰被炮石打碎,换了船搁浅动不得,险些被俘。一直打到最后几天,友谅军已经绝粮,右金吾将军建议烧掉船,全军登陆,直走湖南,左金吾将军主张再战,友谅同意走陆路的办法。左金吾将军怕得罪,领军来降,右金吾将军看情形撑不住了,也跟着投降。友谅军力益加减削,决定退兵,打算冲出湖口,不料迎面又是白船,前后受敌。友谅正要亲自看明情势,决一死战,头才伸出船窗外,被飞箭射死,全军溃败。部将保着友谅尸首和太子陈理,连夜逃回武昌。