至正二十三年(1363)七月,朱元璋率领二十万大军救援洪都,这次朱元璋也是倾国而来,徐达、常遇春、冯国胜、廖永忠、俞通海、郭兴等大将全部都跟随出征。陈友谅知道朱元璋亲自过来救援,也不再攻打洪都了,带领船队开到鄱阳湖上,准备迎战朱元璋。自从陈友谅围困洪都,到朱元璋到来,一共八十五天,这八十五天,因为朱文正、邓愈等人顽强的抵御,洪都像一个坚不可摧的堡垒一样,遏制着陈友谅军,一直等到朱元璋的到来。
朱元璋和陈友谅都知道这不是一次普通的对战,而是一场空前的豪赌,朱元璋的赌资是二十万将士的性命,陈友谅的赌资是六十万将士的性命。这一战之后,胜出的人将会拥有整个天下。
朱元璋和陈友谅的水师首先在鄱阳湖中的康郎山遭遇,朱元璋令徐达、常遇春、廖永忠出击。徐达身先诸将,第一个对陈友谅的大船发起进攻,经过一番搏杀,杀死陈友谅一千五百人,并且夺得大船一艘。随后,俞通海令人发射火炮,轰击陈友谅的大船,一时间陈友谅前军二十多艘船都中炮着火,徐达等人趁机冲杀,陈友谅军被杀死的、掉入水中淹死的无数。不过陈友谅有雄兵六十万,前边死了一批,后边的一批又纷纷涌上,徐达势危,朱元璋忙令人支援徐达,常遇春带着众将奋勇上前,喊杀声震天,无不以一敌百,双方混战一场,各自退去。
这时,陈友谅的结义兄弟张定边,忽然驾舟从陈友谅军中冲出,直冲朱元璋所在船只。张定边是陈友谅手下猛将,骁勇无比,一路向前,势不可当,朱元璋大惊,想要逃避,所乘船只竟然搁浅,走不掉,眼看张定边的船就要冲过来。危急时刻,旁边的常遇春一箭射中张定边,张定边身受箭伤,无法继续冲锋,只好退去。俞通海驾大船过来援救朱元璋,大船进得比较急,江水涌入,朱元璋的船只才得以驶开,不过被张定边一冲,朱元璋军也死伤不少,手下将领韩成、宋贵、陈兆先、万国胜都战死了。
恶战之后,天色已晚,双方鸣金收兵,各自回去商量对策。陈友谅回去后,和众将商量一番,想起来个主意,决定把自己的几百艘大船用铁链锁起来,这样几百艘大船一起进攻,肯定很有威胁力(陈友谅是读书人,应该知道赤壁之战的事,却做了这么一个影响战局最终结果的决策)。
第二天,朱元璋率兵同陈友谅再次开战,却赫然发现对面陈友谅的大船已经首尾连接起来,远远望去,像连绵不绝的山一样。这一打起来,对朱元璋大为不利,朱元璋军中本都是小船,和陈友谅的大船靠在一起,士卒只能仰着头朝上打,而陈友谅的士卒居高临下,很占便宜。双方大战三天三夜,朱元璋士卒死伤惨重,部将张志雄、丁普郎、余昶、陈弼、徐公辅都战死了。三天后,朱元璋右翼的军队开始溃退,朱元璋连斩十几个队长都无济于事,眼看着就要大败,部将郭兴进言:不是将士不卖命厮杀,实在是陈友谅的大船太难攻打了,除非用火攻,不然根本没法取胜。
朱元璋采纳郭兴的意见,弄了七个小船,里边装满火药,然后周围捆上草人,并且给草人穿上盔甲,挑选了些敢死之人控制小船。到了申时,东北风起,朱元璋命令死士乘风纵火,直冲陈友谅的船队,陈友谅的几百艘大船瞬间成了一片火海,火焰冲天,整个鄱阳湖的湖水都成了红色,红色的湖水中都是伤兵的哀号,陈友谅的两个弟弟陈友仁、陈友贵以及平章陈普略都被烧死,陈友谅的大船因为被锁在一起,难以运转,被烧毁大半,可怜那些大船下层的船夫,不知道上边已经成一片火海了,还在拼命划船,结果都被烧死了。朱元璋又乘胜攻击,斩首二千余级。
最后陈友谅没被烧毁的战船只剩一小半,陈友谅自知大势已去,却又不甘心,听说朱元璋所乘船的桅杆是白色的,准备第二天率领余部殊死一战,都攻打白色桅杆的船。朱元璋早有准备,连夜让人把所有船的桅杆都涂成白色。第二天陈友谅想要攻击朱元璋的船,发现对方所有船的桅杆都是白色,彻底崩溃。朱元璋不给他喘息的机会,率领大军再次发起进攻,大败陈友谅军。
陈友谅抛弃旗鼓、器杖逃走,想要退到鞋山,却又被朱元璋阻挡,冲不出去,只好敛舟自守,不敢再和朱元璋交锋。双方僵持三天,陈友谅手下左右金吾将军先后投降朱元璋,朱元璋又写信给陈友谅,羞辱了他一番,陈友谅大怒,命令把抓到的朱元璋将士全部杀掉。朱元璋知道后,也下了个命令,让把抓获的陈友谅将士全部放回,并且有伤的发放药品,一暴一仁对比,进一步瓦解了陈友谅的军心,陈友谅的将士纷纷逃去。
八月,陈友谅粮尽,他再也忍不住了,决定从湖口突围。朱元璋怎能轻易放过他,顺流而下,攻打陈友谅。陈友谅完全抵挡不住,一路败退,傍晚的时候,陈友谅从船中伸出头察看军情,不提防一支冷箭射来,从眼射进,贯穿头部,一代枭雄陈友谅就这样死去。陈友谅一死,军队溃散,太子陈善儿、平章姚天祥都成了俘虏,张定边夜里用小船载着陈友谅的尸体以及陈友谅的次子陈理逃到武昌,到了武昌,立陈理为皇帝。
鄱阳湖决战是中国历史上规模最大的一次水战,朱元璋和陈友谅一共投入八十万兵力,最终朱元璋以少胜多,大败陈友谅军,陈友谅中流矢而死。此战是朱元璋一生的转折点,为朱元璋称霸天下奠定了基础。
朱元璋深知斩草要除根,陈友谅虽死,但是他儿子陈理又在武昌称汉帝了,决不能让他恢复元气。至正二十三年(1363)九月,朱元璋让李善长、邓愈留守应天,率领常遇春、康茂才、廖永忠、胡美等人溯江而上,攻打武昌。
十月,朱元璋大军到了武昌,水路大军并进,将武昌围了个里三层、外三层,让常遇春在武昌周围立起栅栏,在长江上以船结成长寨,严防汉兵出入。除了围困武昌,朱元璋还分兵攻打武昌周围的城池,以断武昌外援。
汉军太尉张定边带着小皇帝陈理坚守四个月后,感觉快守不住了,派人突围而出,去岳阳请丞相张必先发兵支援。张必先率军赶到距离武昌二十里的红山驻扎,等待时机。朱元璋知道后,命令常遇春率领五千精兵突击张必先的营地,汉军大败,张必先也成了常遇春的俘虏,常遇春把张必先带到武昌城下,给城里的人看,以削弱城中士卒的斗志。张必先是陈友谅的结拜兄弟,骁勇善战,外号“泼张”,武昌城里的汉军都指望他来救援呢,忽然间张必先已经被常遇春五花大绑,武昌城的守军沮丧,士无斗志,陈理肉袒衔璧,开门请降。湖北、湖南、江西各地陈友谅的旧部,听说武昌沦陷了,纷纷望风而降。
陈理归降,朱元璋并未杀他,而是封他为归德侯。朱元璋称帝后,陈理经常有怨言,朱元璋觉得一直让陈理在应天不妥,令人将他押送到高丽,让高丽王好生看视。陈友谅做梦也没想到,自己一世枭雄,儿子竟然去了高丽,日日以韩国泡菜为食,直至终老。
解决完陈友谅、陈理父子,朱元璋大赏众将,徐达、常遇春、廖永忠等人都受到丰厚的赏赐,可唯独洪都守卫战的第一功臣朱文正没有赏赐,因为朱元璋原来问他想要什么官职的时候,他让朱元璋先封其他人,不用急着封自己人,朱元璋误以为这个侄儿深明大义、不居功,所以这次也没赏赐他。
其实朱文正以前在叔叔面前说这些话只是客套话,为的是给朱元璋留个好印象,没想到朱元璋真的信了,这次也没给他赏赐,差点没把朱文正气死,朱文正火气很大,不敢对朱元璋发作,就在其他地方生事。朱文正为了泄怒,纵容将领抢夺他们手下人的妻子,在军中造成了极恶劣的影响。按察使李饮冰知道后,把朱文正的种种不法行为上报给朱元璋,朱元璋大怒,亲自到洪都清理门户,把朱文正押回应天,想要杀掉。马氏从中劝说,朱元璋才免了朱文正的死罪,把他软禁在桐城,这位元末最厉害的钉子户从此退出大众视线,郁郁一生。
值得一提的是陈友谅的结拜兄弟张定边,这是个奇人,陈理投降后,他隐迹江湖,遁入空门,朱元璋死后他还健在,一直活到永乐十五年,活了整整一百岁。