朱元璋占領應天府並以此為中心,控製了整個江淮地區,但仍然麵臨兩個強大的對手——西麵的陳友諒和東麵的張士誠。應天城裏人心不穩,朱元璋心中也十分憂慮。朱元璋手下有個謀臣名叫劉基,他分析了當時的形勢,認為張士誠貪圖享受,並不可怕;陳友諒野心不小,很危險,應該先把他消滅掉,而後再征服張士誠。朱元璋聽從了劉基的意見,決定先對付陳友諒。
陳友諒出生在沔陽(今湖北沔陽)漁民家庭裏,小時候讀過幾年書,在縣衙裏當過文書,心計很多。後來投奔了徐壽輝的起義軍,屢立戰功並逐漸掌握了大權。1359年底,陳友諒把徐壽輝從漢陽接到軍中,第二年五月,陳友諒用鐵錘擊死徐壽輝,把國號改為漢,自己做了皇帝。結果引起了部下的不滿,紛紛背叛或獨立。
1363年三月,陳友諒乘朱元璋親自率領大軍到安豐去營救小明王之機,親自統率著六十萬水陸大軍沿長江而下,打算一舉消滅朱元璋。中國古代最大規模的一次水戰拉開了帷幕。
陳友諒的大軍首先包圍了洪都(今江西南昌),守衛洪都的大將朱文正是朱元璋的侄子,他按照朱元璋的囑咐,堅守不出。陳友諒知道朱元璋把主力拉到安豐,洪都城裏不會有很多守軍。因此親自督戰,讓士兵架起雲梯,頭戴竹帽拚死攻城。朱文正指揮著守軍,一次次擊退敵人。但形勢依然十分危急,朱文正一麵派部將張子明到應天求援,一麵派士兵到陳友諒軍營中假裝談判以拖延時間。陳友諒信以為真,停止了攻城,結果到了約好投降的日期,卻不見朱文正的蹤影,陳友諒氣得咬牙切齒,命令繼續攻城!張子明突圍到應天向朱元璋報告了軍情後,朱元璋叫他轉告朱文正讓他堅守一個月。張子明返回的途中不幸被陳友諒抓獲,陳友諒把他帶到城下,叫他勸朱文正投降,他寧死不肯,就被陳友諒殺了。朱文正在艱苦的條件下堅守洪都,一直守了八十五天。
七月,朱元璋親自帶領二十萬水軍到達湖口(今江西湖口),陳友諒得到消息後,下令撤掉了圍攻洪都的軍隊,準備在鄱陽湖消滅朱元璋的主力,當時兩支軍隊相差懸殊,陳友諒有將士六十萬,戰船幾百艘;朱元璋,隻有二十萬兵力,戰船都很小,沒法兒跟陳友諒的大戰船作戰。
陳友諒的大戰船都用鐵鏈條連在一起,活動起來很不方便。朱元璋和部將們決定采用火攻。
七月二十一日,雙方在鄱陽湖邊的康郎山一帶擺開陣勢,朱元璋手下的水軍大將俞通海乘風放火,燒毀陳友諒的大戰船二十多艘。七月二十二日,雙方主力再次會戰,陳友諒用高大的戰船對抗朱無璋矮小的戰船。結果,朱元璋的軍隊傷亡很重,紛紛敗退下來。朱元璋冷靜地想了一下後,立刻命令大將常遇春、俞通海找來一批漁船,在裏麵裝上蘆葦、火藥。趁中午刮起東北風之機,朱元璋命令點火,這些漁船噴著火,順著風衝向陳友諒的大戰船,大戰船因為有鐵鏈連著,動彈不了,一時間濃煙滾滾,烈火衝天。陳友諒的士兵不是被燒死,就是跳湖淹死,陳友諒的弟弟陳友仁、陳友貴和許多大臣、將領也都被燒死了。
這一仗之後陳友諒元氣大傷,又打了兩天,陳友諒損兵折將,不得不向湖口突圍了。他哪裏知道,劉基早就在這裏布下了伏兵。八月二十七日,陳友諒集中殘餘力量從禁江口突圍,立刻被朱元璋的火船團團圍住了。在混戰中陳友諒被一支流箭射穿了眼睛,慘叫一聲,當場斃命。
鄱陽湖一戰,陳友諒的六十萬水軍全軍覆沒,一批大臣、將領投降了朱元璋,陳友諒的兒子善兒也成了俘虜。第二年,朱元璋率軍攻下了武昌,徹底消滅了陳友諒的勢力。