當時朱元璋去救王小明,陳友諒趁機包圍洪都。幸而朱文正率領洪都守軍頑強抵抗,直到朱元璋前來救援。陳友諒得到消息後,東渡鄱陽湖作戰。決定雙方命運的決戰開始了。朱元璋率領20萬水軍與陳友諒決戰。決戰開始前,朱元璋作出安排,包圍陳友諒,壹軍防守荊江口,壹軍駐守南湖口,切斷陳友諒的後路,朱元璋自己進入鄱陽湖與陳友諒作戰。
據史料記載,陳友諒的船隊綿延數十裏,氣勢磅礴。朱元璋與陳友諒的安排不同。他分散艦隊,編了20個隊。每個艦隊都配備了武器。在接近對方艦船時,他主要是先使用槍械等遠程殺傷武器,最後才考慮肉搏戰。
戰後,徐達率領船隊殺了1500多人,但朱軍也受了不少傷。陳友諒的船比朱元璋的大得多,進攻嚴重受挫。後來,朱元璋利用部下的建議,用火攻陳友諒。被朱元璋選中,駕著裝滿火藥和柴火的漁船,順風向陳友諒的船隊靠近,然後順風點火,放火燒陳。陳友諒的部隊大部分傷亡,他的兩個兄弟和陳普將軍也未能逃脫。
之後朱軍士氣高漲,陳友諒的人馬開始向朱元璋投降,進壹步動搖了陳友諒的士氣。朱元璋用攻城來對付陳友諒。在長達壹個多月的對抗中,陳友諒的部隊糧草告罄,不得不突圍。陳友諒在突圍時被亂箭射死,五萬余人投降。