元朝末年,各地农民纷纷起义,并且互相倾轧。朱元璋占领金陵(今江苏南京市)后,陈友谅率兵来攻,被朱元璋打败。三年之后,陈友谅又发动60万大军来犯。
两军会战于鄱阳湖,陈友谅连接巨舟为阵,楼船高十多丈,绵延数十里,旗枪如林,戈盾如山,以排山倒海之势压过来。朱元璋分兵20队,两军前锋相遇,徐达、俞通海用火炮轰击敌军冲过来的船只,双方互有死伤。陈友谅手下的骁将张定边驾船直闯中军,扑向朱元璋乘坐的指挥船,朱元璋的指挥船被强敌追逼,偏偏又搁浅陷于沙滩之中,进退不得,眼看张定边跳过战船,要活捉朱元璋,幸亏大将常遇春驾船赶来,一箭射中张定边,俞通海也率队前来营救,众多船只驶过来,湖水往上涨,朱元璋的战船才冲出浅滩。众将看见陈友谅的所有巨舟都参战了,撞得自己军中的小船船翻人淹,几乎难以招架,都吓得不知所措。朱元璋亲自擂鼓指挥,士卒都不敢上前,朱元璋连斩十多人,大家才奋勇抵抗,死拼不退。这样坚持到午饭时,湖面刮起东北大风,朱元璋一看机会来了,就组织起敢死队,用七只小船装满火药芦苇,点火纵舟,如飞般驶向敌军,陈友谅的大船多被烧着。风猛火炽,烟焰冲天,整个鄱阳湖变成一片火海,把湖水都映得血红。陈友谅军中大乱,士兵惊惶逃奔,朱元璋乘势擂鼓冲击,陈友谅大败,部下被杀2000余人,烧死淹死的人不计其数。陈友谅收拾剩余船只,退回渚矶,不敢再战。
双方相持三日,陈友谅军心涣散,左右两个金吾将军率队投降。陈友谅气急败坏,把战斗中俘虏的将士全部杀死。朱元璋与其相反,对俘虏好言相慰,受伤的则用好药精心医治,并举行仪式,为那些俘虏阵亡的亲戚朋友祭奠,最后让这些俘虏自主去留,很多将士都自愿归降于朱元璋。
重新开战后,朱元璋军中士气大增,而陈友谅军则毫无斗志,一击即溃。混战中,陈友谅被流箭射穿头颅而死。