一天黄昏,湖面上吹起了东北风。朱元璋命令水军将领廖永忠、俞通海率水兵驾驶七条渔船出发。船上装满芦苇柴薪,中放火药,上置草人,伪装成水军将士,而真正的水兵则躲在草人下的挡板后面。再在各条船的船梢上系一只轻快小船,准备点火之后乘小船撤走。七条渔船顺风顺水,向陈友谅的大船划去。陈友谅的哨兵站在高大的船头上,先是紧张了一阵子,后来见渔船上只有几个士兵持戈而立,也就松了口气,根本没把小渔船放在眼里,他们耐心地等待渔船靠近,以便活捉生擒。
有人把此事报告陈友谅,陈友谊赶到船头观察,发现渔船越驶越近,觉得可疑,忙命兵士射箭。谁知那渔船上的士兵直挺挺地站着,一个也射不到。等陈友谅发现那些士兵都是穿了盔甲的草人时,渔船已贴近大船。渔船上嗖嗖地抛过来数十只铁钩,牢牢地搭住大船。躲在挡板后的廖永忠、俞通海命令士兵将船中浸透了油渍的芦苇和火药硫磺点燃,然后,纷纷跳进船稍后的轻便小船,一溜烟似地撤走了。渔船里的芦苇火药烧起巨大的火焰,很快也把大船烧着了。陈友谅忙命士兵扑灭火焰,怎奈风急火烈,四面燃烧,几乎扑不胜扑。他们的大船都用铁链锁在一起,仓促间难分开,大火蔓延开来,全军乱作一团。此时,常遇春率领的战船又从两边包抄过来,那船桅上用竹竿挑着一个怪物,形如百姓盛粮的大笆斗,用芦苇和布包扎,里面贮着火药和火蒺藜,名曰没奈何。等靠近陈友谅船只,点燃火线,烧断悬索,没奈何就落入敌船中爆炸,将船炸毁。陈友谅的战船四面燃烧,变成一条火龙。天色已黑,熊熊大火把鄱阳湖映得通红,胜似那夕阳晚霞。朱元璋不失时机地率战舰主力全面出击,大败陈友谅,烧毁对方巨型战舰数百艘,斩首二千余人。陈友谅的两个兄弟和大将陈普略均被烧死,他本人也被吓得惊慌失措,丧魂落魄。
陈友谅气得咬牙切齿,当夜与部下计议说:朱元璋太狡猾,用火攻折我大军无数,此仇一定要报。我见他的座船,樯是白色的,明日出战,望见白樯,大伙全力围攻,杀了他方解我心头之恨。部众领命。次日清晨,又一次水战爆发,双方酣战三、四个小时不分胜负。陈友谅指挥水军向有白樯的船进攻,谁知,朱元璋冲在前面的战船的船樯,统统是白色的,辨不出那条船是朱元璋乘坐的指挥船。这是刘基的计谋,目的是为了混淆敌人视线,保护指挥船。不过,既然是指挥船,总会露出蛛丝马迹,陈友谅还是找到了它,命令士兵瞅准指挥船放火炮。这一切被警惕地注视着敌方一举一动的刘基发现了,他跃起大声呼叫:不好,主公快换座船!朱元璋来不及细问,急忙跳上另一条船,但闻一声巨响,原先那船已被击碎。为了挽救危局,廖永忠、俞海通两位水军将领率领6条战舰直插敌阵,他们攀登敌船,逢人便杀,见物就烧,一会儿就绕出了陈友谅军的舰队,竟然丝毫未受损伤。他们的骁勇,鼓舞了朱元璋所有将士,使他们勇气倍增,拼命围攻大船。陈友谅的战船高大,行动迟缓,经不住朱元璋将士杀一阵,烧一阵,很诀就垮掉了,士兵们不是被烧死,就是落水淹死。陈友谅至此,狼狈已极,亏得张定边拼命救护,才冲出重围。他只好收拾残余战舰撤退,不敢再战。
此后,两军开始对峙,谁也不轻易发动进攻。不久,陈友谅的两员大将又投降了朱元璋,内部不稳,力量更加削弱。陈友谅又气又恼,下令把战争中抓来的俘虏统统杀掉。朱元璋闻讯,却反其道而行之,将俘虏全部送还,受伤的还给敷上好药,从而大得人心。陈友谅军内部分崩离析。
两军对峙这一月之久,陈友谅舰队被困湖中,军粮殆尽,计穷力竭,危在旦夕。陈友谅妄图孤注一掷,从湖口突围,转入长江,再奔武汉大本营。
朱元璋早已严阵以待,陈友谅左冲右突打不开生路。朱元璋唯恐陈友谅逃走,亲自指挥追击。陈友谅边退边向朱元璋指挥船密集射箭,有一箭射中朱元璋的座椅,朱元璋下意识地惊叫一声。陈友谅以为射中了朱元璋,将头伸出船舱张望,被朱元璋部将郭英一箭射死。当朱元璋听到陈友谅中箭身亡时,高兴地说:呆头鹅已死,天下安定矣!
1364年2月,朱元璋攻下武昌,陈友谅的儿子陈理投降,朱元璋的势力终于控制了原陈友谅的所属地区。