七月初六,朱元璋親率水軍20萬,往救洪都。十六日進抵江西湖口。
首先派兵守住涇江口(今安徽宿鬆南),另派一軍屯於南湖嘴(今江西湖口西北),切斷陳友諒歸路;又派兵扼守武陽渡(今江西南昌縣東),以防陳軍逃跑;朱元璋則親率水師由鬆門(今江西都昌南)進入鄱陽湖,形成關門打狗之勢。
陳友諒聽說朱元璋大軍來援,即撤洪都之圍,東出鄱陽湖迎戰。一場規模空前激烈異常的生死大決戰,就此在鄱陽湖麵展開。
二十日,兩軍在康郎山(今江西鄱陽湖內)湖麵遭遇。時陳軍巨艦聯結布陣,展開數十裡,“望之如山”,氣勢奪人。朱元璋針對其巨艦首尾連接,不利進退,將己方艦船分為20隊,每隊都配備大小火炮、火銃、火箭、火蒺藜、大小火槍、神機箭和弓弩,下令各隊接近敵艦時,先發火器,次用弓弩,靠近敵艦時再用短兵器進行格鬥。
次日,雙方展開激戰。朱軍大將徐達身先士卒,率艦隊勇猛衝擊,擊敗陳軍前鋒,斃敵1500人,繳獲巨艦一艘。
俞通海乘風發炮,焚毀陳軍20餘艘艦船,陳軍被殺和淹死者甚眾。
但朱軍傷亡也不少,尤其是朱元璋座艦擱淺被圍,險遭不測。
戰鬥呈膠著狀態。從早晨至日暮,雙方鳴金收兵,戰鬥告一段落,雙方互有傷亡,不分勝負。
二十二日,朱元璋親自率領水師出戰。但陳艦巨大,朱軍艦小不能仰攻,接連受挫。這時朱元璋及時采納了部將郭興建議,決定改用火攻破敵。
黃昏時分湖麵上吹起東北風,朱元璋選擇勇敢士兵駕駛7艘漁船,船上裝滿火藥柴薪,迫近敵艦,順風放火,風急火烈,迅速蔓延。
一時烈焰飛騰,湖水儘赤,轉瞬之間燒毀陳軍數百艘巨艦,陳軍死傷過半,陳友諒的兩個兄弟及大將陳普略均被燒死。
朱元璋揮軍乘勢發起猛攻,又斃敵2000餘人。