朱文正的军队不是很多,与陈军兵力悬殊,但朱文正沉着冷静,指挥有方,抵御住了陈军的大举进攻。南昌保卫战十分激烈,陈军潮水般地发动猛烈,双方死伤惨重。朱文正采取城内筑墙的办法,陈军攻破一道城墙,里面又遇到一道墙,陈军连续攻城八十五天,始终不能占领城池。
朱文正为保卫南昌立下大功,战后因为对朱元璋的封赏不满,放纵部下强抢民女,犯了军纪,被免官拘禁。朱文正郁闷,得病死了。朱元璋十分难过,遂封他八岁的儿子为王。
朱元璋听说陈友谅大举反攻,南昌被围,命大将徐达镇守南京,自己亲率二十万大军前去支援。陈友谅得知朱元璋前来,撤除对南昌的包围,东出鄱阳湖迎战。陈友谅依仗船大,自己又习水战,决心在水中与朱元璋决战,于是爆发了著名的鄱阳湖大战。
陈友谅的船只庞大,又用铁链相连,排成巨阵,像泰山一般向朱元璋船队压来。朱元璋的船小,抵挡不住,对大船仰攻,又处于不利的位置,激战数日,损失不小。朱元璋坐的船被搁浅,十分危险,幸亏常遇春等人奋勇相救,朱元璋才逃脱了性命。
当时唯一的办法,是使用火攻,可湖面上风平浪静,无法举火。过了几天,忽然刮起了东北风,老天爷来帮忙了。朱元璋大喜,令各船举火,扑向敌军大船。廖永忠、俞通海带领七艘满载芦荻的小船,冲在最前边。陈友谅的大船躲避不及,大部分被烧毁。陈友谅吃了大亏。
朱元璋坐的船有个明显标记,桅杆是白色的。陈友谅晚上与众将商定,第二天集中全力攻打白桅船。不料,有人将这一消息泄了密,朱元璋下令,连夜将所有船的桅杆都漆成了白色。陈友谅傻了眼,计划落空。
经过一段时间的水战,朱元璋军队摸索出经验,利用船小灵活的优势,使用投石机等武器,杀伤了大量敌人,连陈友谅的弟弟陈友仁也被打死了。陈友谅的左金吾将军和右金吾将军,见情况不妙,都率部投降了朱元璋。
陈友谅见难以取胜,心生退意,可李文忠已经事先扼住了湖口,截断了他的退路。陈军有的将领建议,焚船登陆,从陆地突围。陈友谅舍不得大船,没有同意。
又坚持一个月之后,陈友谅军中粮食渐尽,面临断粮绝境。陈友谅无奈,只得不惜代价,冒死突围。朱元璋军队炮石俱下,万箭齐发,陈军伤亡惨重。
陈友谅拼死冲出湖口,谁知朱元璋早有防备,在上游也部署了军队,进行拦截,后边战船又尾追而至,双方在泾江口大战。陈军且战且退,但激战一天,仍然不能摆脱朱元璋军队的围攻。
陈友谅心中焦急,从船中伸出头来,观察敌情,指挥战斗。不料,一箭飞来,正中头部。飞箭力度很大,贯穿头颅,陈友谅顿时毙命,时年四十四岁。
陈友谅一死,军心大乱,斗志全无,太子陈善儿被活捉,大批将士投降。陈军大将张定边,奋力保护着陈友谅的次子陈理,载上陈友谅的尸体,带着残兵败将逃回了武昌。
张定边是陈友谅手下第一猛将,回到武昌以后,立陈理为皇帝,陈理只有十三岁。
朱元璋的将领们纷纷要求,乘胜攻打武昌,朱元璋却说:“这个时候攻打武昌,张定边必定会拼死抵抗,伤亡肯定很大。陈军已是秋后的蚂蚱,蹦跶不了几天了。咱们明年再来攻打,可以不战而胜。”
第二年,朱元璋率军再次西征,包围了武昌。城内果然人心惶惶,都愿意投降。张定边本来想死战,但见人心已经散了,大势已去,只得与陈理献城投降。
陈理被封为归德侯,迁居高丽,活了五十八岁。
朱元璋觉得张定边忠勇,想招降他。张定边却坚决不从,遁入空门,削发为僧,不问世事,活到一百岁。
朱元璋消灭了陈友谅,下一步就要对付张士诚了。