朱元璋占领应天府并以此为中心,控制了整个江淮地区,但仍然面临两个强大的对手——西面的陈友谅和东面的张士诚。应天城里人心不稳,朱元璋心中也十分忧虑。朱元璋手下有个谋臣名叫刘基,他分析了当时的形势,认为张士诚贪图享受,并不可怕;陈友谅野心不小,很危险,应该先把他消灭掉,而后再征服张士诚。朱元璋听从了刘基的意见,决定先对付陈友谅。
陈友谅出生在沔阳(今湖北沔阳)渔民家庭里,小时候读过几年书,在县衙里当过文书,心计很多。后来投奔了徐寿辉的起义军,屡立战功并逐渐掌握了大权。1359年底,陈友谅把徐寿辉从汉阳接到军中,第二年五月,陈友谅用铁锤击死徐寿辉,把国号改为汉,自己做了皇帝。结果引起了部下的不满,纷纷背叛或独立。
1363年三月,陈友谅乘朱元璋亲自率领大军到安丰去营救小明王之机,亲自统率着六十万水陆大军沿长江而下,打算一举消灭朱元璋。中国古代最大规模的一次水战拉开了帷幕。
陈友谅的大军首先包围了洪都(今江西南昌),守卫洪都的大将朱文正是朱元璋的侄子,他按照朱元璋的嘱咐,坚守不出。陈友谅知道朱元璋把主力拉到安丰,洪都城里不会有很多守军。因此亲自督战,让士兵架起云梯,头戴竹帽拼死攻城。朱文正指挥着守军,一次次击退敌人。但形势依然十分危急,朱文正一面派部将张子明到应天求援,一面派士兵到陈友谅军营中假装谈判以拖延时间。陈友谅信以为真,停止了攻城,结果到了约好投降的日期,却不见朱文正的踪影,陈友谅气得咬牙切齿,命令继续攻城!张子明突围到应天向朱元璋报告了军情后,朱元璋叫他转告朱文正让他坚守一个月。张子明返回的途中不幸被陈友谅抓获,陈友谅把他带到城下,叫他劝朱文正投降,他宁死不肯,就被陈友谅杀了。朱文正在艰苦的条件下坚守洪都,一直守了八十五天。
七月,朱元璋亲自带领二十万水军到达湖口(今江西湖口),陈友谅得到消息后,下令撤掉了围攻洪都的军队,准备在鄱阳湖消灭朱元璋的主力,当时两支军队相差悬殊,陈友谅有将士六十万,战船几百艘;朱元璋,只有二十万兵力,战船都很小,没法儿跟陈友谅的大战船作战。
陈友谅的大战船都用铁链条连在一起,活动起来很不方便。朱元璋和部将们决定采用火攻。
七月二十一日,双方在鄱阳湖边的康郎山一带摆开阵势,朱元璋手下的水军大将俞通海乘风放火,烧毁陈友谅的大战船二十多艘。七月二十二日,双方主力再次会战,陈友谅用高大的战船对抗朱无璋矮小的战船。结果,朱元璋的军队伤亡很重,纷纷败退下来。朱元璋冷静地想了一下后,立刻命令大将常遇春、俞通海找来一批渔船,在里面装上芦苇、火药。趁中午刮起东北风之机,朱元璋命令点火,这些渔船喷着火,顺着风冲向陈友谅的大战船,大战船因为有铁链连着,动弹不了,一时间浓烟滚滚,烈火冲天。陈友谅的士兵不是被烧死,就是跳湖淹死,陈友谅的弟弟陈友仁、陈友贵和许多大臣、将领也都被烧死了。
这一仗之后陈友谅元气大伤,又打了两天,陈友谅损兵折将,不得不向湖口突围了。他哪里知道,刘基早就在这里布下了伏兵。八月二十七日,陈友谅集中残余力量从禁江口突围,立刻被朱元璋的火船团团围住了。在混战中陈友谅被一支流箭射穿了眼睛,惨叫一声,当场毙命。
鄱阳湖一战,陈友谅的六十万水军全军覆没,一批大臣、将领投降了朱元璋,陈友谅的儿子善儿也成了俘虏。第二年,朱元璋率军攻下了武昌,彻底消灭了陈友谅的势力。