七月初六,朱元璋亲率水军20万,往救洪都。十六日进抵江西湖口。
首先派兵守住泾江口(今安徽宿松南),另派一军屯于南湖嘴(今江西湖口西北),切断陈友谅归路;又派兵扼守武阳渡(今江西南昌县东),以防陈军逃跑;朱元璋则亲率水师由松门(今江西都昌南)进入鄱阳湖,形成关门打狗之势。
陈友谅听说朱元璋大军来援,即撤洪都之围,东出鄱阳湖迎战。一场规模空前激烈异常的生死大决战,就此在鄱阳湖面展开。
二十日,两军在康郎山(今江西鄱阳湖内)湖面遭遇。时陈军巨舰联结布阵,展开数十里,“望之如山”,气势夺人。朱元璋针对其巨舰首尾连接,不利进退,将己方舰船分为20队,每队都配备大小火炮、火铳、火箭、火蒺藜、大小火枪、神机箭和弓弩,下令各队接近敌舰时,先发火器,次用弓弩,靠近敌舰时再用短兵器进行格斗。
次日,双方展开激战。朱军大将徐达身先士卒,率舰队勇猛冲击,击败陈军前锋,毙敌1500人,缴获巨舰一艘。
俞通海乘风发炮,焚毁陈军20余艘舰船,陈军被杀和淹死者甚众。
但朱军伤亡也不少,尤其是朱元璋座舰搁浅被围,险遭不测。
战斗呈胶着状态。从早晨至日暮,双方鸣金收兵,战斗告一段落,双方互有伤亡,不分胜负。
陈军内部分崩离析,士气更加低落。朱元璋判断陈军可能突围退入长江,乃移军湖口,在长江南北两岸设置木栅,置大舟火筏于江中,又派兵夺取蕲州、兴国,控制长江上游,堵敌归路,待机歼敌。
经过1个多月的对峙,陈友谅被困湖中,军粮殆尽,计穷力竭。于是孤注一掷,冒死突围。
八月二十六日,由南湖嘴突围,企图进入长江退回武昌。
行至江西湖口时,朱军以舟师、火筏四面猛攻,陈军无法前进,复走泾江,又遭傅友德伏兵阻击,左冲右突,打不开生路,陈友谅中箭而死,军队溃败,5万余人投降。
此次水战,从七月二十日开始到八月二十六日结束,前后历时37天,其时间之长、规模之大,投入兵力、舰只之多、战斗之激烈都是空前的。
决战以朱元璋的完全胜利而告终。这次战役被视为中世纪世界规模最大水战。
创造了中国水战史上以少胜多的著名战例,为统一江南奠定了基础,并为以后的北伐和攻灭元朝,统一全国创造了极为有利的条件。