正如刘基所分析的情况那样,陈友谅弑主僭位,急急称帝,并一举舟师东下,这表明他太骄傲了,以至失去了理智,尽管有人在旁边提醒他,紧防有诈,但是陈友谅根本听不进去。陈友谅对老朋友的约降已是深信不疑,他已经把成功的希望完全寄托在康茂才的内应上这一点上。这些无不显示出他的志得意满,求胜心切。至正二十年(1360年)闰五月初十,陈友谅不等张士诚方面作出答复,就贸然率领舟师浩浩荡荡东下,直奔应天而来,企图内外接应,侥幸取胜。当他的大队人马来到新河口的大胜港时,受到了朱元璋留在这里的部将杨王景猛烈的阻击,由于这新河水道狭窄,只能容纳二艘战船并排行驶,使得陈友谅大队的水师无法展开,看着河对岸又出现了一座新城。陈友谅只好下令撤出,沿大江进逼江东桥。当到达目的地时,已是天色昏暗,陈派人上前一看,见明明是一座铁石桥并非木桥,大为吃惊。他接着又连呼暗号“老康”,半天不见回应,方知上当受骗了,忙和弟弟陈友仁掉转船头,率领1000多艘战船折往龙湾方向,并命令1万士卒率先登陆立寨安营。此时陈友谅所到的位置,正处于北有常遇春、冯国胜的伏兵和张德胜舟师,南有徐达雨花台守军的中间部位,而他所面对的卢龙山正是由朱元璋本人把守。朱元璋此时已把陈友谅的一举一动尽收眼底。他这时突然想起了当年谋士冯国用所说的:“集庆之地虎踞龙盘,进退自如。”不错,为这一险固形胜之地,朱元璋心中消灭陈友谅和张士诚的信心更加增强了。他纵兵待敌,用兵从容,镇定自若,然而他的部下却再也沉不住气了。当他的部将要求马上出击时,他却说:“不要着急嘛,看看这天色,马上就要下雨了,咱们先吃饭,等雨到来的时候,趁着夜色和大雨再发动攻击,岂不是效果更好。”由于当时天气炎热干燥,军帐外面的士兵们早已个个浑身透湿,痛苦难耐,就连朱元璋自己的衣衫也已被汗水浸透。可是正如朱元璋所说的,不久忽然一阵微风刮过,忽然响起沉闷的雷声,顷刻间下起瓢泼大雨。直到这时,只听朱元璋一声号令,卢龙山右侧的红色信号旗高高举起,埋伏在卢龙山的士兵蜂拥而出,借着雨水的掩护,出其不意地直抵陈友谅的安营扎寨之地。正当两军展开接战之时,雷雨天气也已雨过天晴,此时正是大举进攻的良机,此时朱元璋下令擂响战鼓,冯胜、常遇春带领伏兵杀向了龙湾,徐达也带兵从南门外赶到,会同张德胜、朱虎的舟师,内外夹击。正在避雨的陈友谅军队,猛然间见冲出大批伏兵,全都震惊了。朱元璋的几路伏兵奋力冲杀,把立足未稳的陈友谅打得晕头转向。陈友谅所部在此战役中被动异常,几乎全无还手之力,大部分士卒登舟竞相逃命。时值退潮,高大战船全部搁浅,士卒、将士乱作一团,互相践踏,被杀和落水者不计其数,一时之间,陈友谅的“铁蹄”,已经灰飞烟灭,被俘达两万余人。陈友谅见自己的部将张志雄、梁铉、俞国兴、刘世衍等纷纷投降,自己的巨型指挥舰也被缴获,便和剩下的几个亲信换乘小舟,向江州方向逃窜而去。在这场战役之中,朱元璋的军队缴获百余艘巨舰和几百艘战船,朱元璋的士兵们从巨舰的卧席下搜出了康茂才的诈降信,朱元璋看到这封信,得意地对身旁的将士们说:“陈友谅愚昧至此,简直太可笑了。”龙湾之战后,朱元璋乘胜收复了太平。这场惊心动魄的战争,可以说是朱元璋建立江南行省以来的第一场事关存亡的大战,是决定朱元璋的义军未来命运和发展方向的决战。朱元璋在刘基的分析和鼓励下建立了必胜的信心,充分发挥了自己的聪明才智,善于把握兵略的优势,并且知人度势,巧妙利用陈友谅的狂妄自大、轻敌的求胜心理,采用诈降之计,完成了诱敌入瓮,调集优势兵力,集中火力,设伏聚歼的战略构想,不仅歼敌于应天城外,而且使朱元璋的部队威声大振,响彻四海。经过应天城龙湾一战,朱元璋大败陈友谅,对张士诚也起到了敲山震虎的作用。原来,张士诚曾答应了陈友谅一起攻击朱元璋的计划,但张士诚为人谨慎,没有陈友谅那么狂妄自大,而且他认为应天之战易守难攻,地势险要,贸然进兵应天,简直是凶多吉少,所以嘴上答应了陈友谅,私下里却是守境观变、按兵不动。当看见陈友谅在应天龙湾大败时,暗自庆幸自己未曾上当。
应天保卫战不仅打出了朱元璋的豪气,打出了朱家军的威风,而且彻底消灭了企图与朱元璋政权为敌的武装的志气。一些地方武装力量见朱元璋形势好转,盛世之下并有大业之象,于是对朱元璋更加畏惧起来,有的甚至纷纷来降。但朱元璋并没有被胜利的喜悦冲昏头脑,而是按照刘基、朱升、李善长等一班智囊人物的谋划,按部就班,积极备战,防备陈友谅的反扑报复。陈友谅虽然经龙湾之战惨败,但是他并不服输。又于至正二十一年(1361年)五月至次年二月间,在江州和湖广再举战事,但事与愿违,三次战事接连惨遭失败。陈友谅更加气急败坏,企图夺回已失去的故地。而此时的朱元璋,挥师西进,乘胜追击,一举收复了整个江西地区及湖北的东南部。朱元璋实力强,兵强马壮;陈友谅势力日渐削弱,他已经没有什么实力可言了,就更别提与朱元璋一决高下了。朱元璋收复江西之后,陈友谅的旧部看到陈友谅大势已去,于是纷纷前来投靠朱元璋。这其中最有代表的就要属陈友谅的江西行省丞相胡廷瑞了。胡廷瑞是陈友谅的旧部,跟随陈友谅作战多年,可是看到眼下的形势,他早已改变了看法,他和平章祝宗等人到江州,向坐镇督战的朱元璋请降,但是他的投降有一个条件,那就是要求保留原有的部下。朱元璋得知此事后,看着殿下跪着的胡廷瑞,心里开始犯起嘀咕来。朱元璋之所以能在应天龙湾取胜,靠的就是诈降这一计策,现在陈的部下来投奔,会不会又是反其道而行之,以牙还牙呢?况且降就降吧,何必非得要保留自己原有的部队呢?这不能不让朱元璋警惕。朱元璋身边的智囊人物刘基看出了主公的犹豫,他当时正站在朱元璋身后,暗中用脚踢了踢朱元璋的坐椅,朱元璋是非常依赖刘基的,自己这些年来的成功业绩离不开刘基的辅佐,因此,刘基在身后提醒后,朱元璋立即答应了胡廷瑞的要求。胡廷瑞为了向朱元璋表示了投诚的决心,于至正二十二年(1362年)正月,先派自己的外甥赴江州投降,而后又和祝宗等于龙兴新城门外迎接朱元璋。朱元璋也是明理之人,感动之余,看望了胡廷瑞的母亲,又命胡廷瑞留任原职。至正二十一年(1361年),33岁的朱元璋攻克陈友谅的老巢江州,之后又分兵攻取了南康东流、黄州、广济、建昌、蕲州、饶州等地。小明王封朱元璋为吴国公。朱元璋本人也把自己的枢密院改为大都督府。至正二十二年(1362年)却成了朱元璋的坎坷之年、多事之年。先是降人蒋英复叛,胡大海遇害,紧接着便是邵荣谋害自己,事泄被杀。经历了一系列内乱的风风雨雨之后,朱元璋迎来了新的一年——至正二十三年(1363年)。这一年,朱元璋做了两件可以称得上是威震天下的大事:第一件是援救安丰,支援小明王,而另一件便是在鄱阳湖与陈友谅展开生死大决战。至正二十三年(1363年),北方起义军骤起事端。张士诚派部将吕珍带领十万大军帮助元廷开始进攻安丰,张士信领兵殿后。善者不来,来者不善,大军压上,来势汹汹。刘福通几万人马被困于安丰这孤城之内,准备作殊死搏斗。安丰城池实在太小,粮食本来就已紧缺,经过这几十天的围困,城中粮食早已断绝。刘福通先是把自己心爱战马杀死,吃其肉,喝其血。马吃完了,士兵们又不得不用那些老弱妇孺充饥,这还不算残忍的,更有甚者甚至把已经埋在地下腐烂的尸体也挖出来吃,最终导致吃了以后浑身浮肿。军中还有人把井底的淤泥捏成丸子,然后用人油炸了往肚子里填。小明王韩林儿在宫中也是整日哭泣,刘福通在万般危急之中,不得不派人去应天向朱元璋求救。
朱元璋担心张士诚攻破安丰之后,更加如虎添翼,从北面威胁到自己的根据地,而且考虑到君臣名分,决定亲自前去赴援。这时,刘基家中有丧事,未在朱元璋身边,可是一听到北方的消息,立即提前赶到了应天,辅佐朱元璋。刘基认为张士诚胸无大志,只是求得割地自守,暂时不会对朱元璋有什么威胁。眼下的劲敌是陈友谅,陈友谅时时刻刻都在寻找着机会,企图沿江东下,建造自己的江南霸业。如果现在出兵救援安丰,陈友谅很可能趁此时机乘虚而入。所以,刘基建议还是应该先集中精力对付陈友谅,在消灭了陈友谅之后,再收拾张士诚,就如同囊中取物。况且把小明王救出后也不好安置。朱元璋知道刘基的意思是对小明王那边坐视不救,借张士诚之手除掉这个名分上还统辖应天政权的皇上。但是,朱元璋不能这样做,也许是出于“缓称王”的目的吧,也许是他不相信陈友谅在经历过了一系列的失败之后,还会迅速调集自己的力量,所以朱元璋主张要像快刀斩乱麻一样击败张士诚围攻安丰的部队,然后再调转矛头,回过头来对付陈友谅。至正二十三年(1363年)三月初一,朱元璋亲自率领徐达、常遇春两员最得力的大将和主力部队向安丰方向进军。当朱元璋的军队到达安丰之时,正值吕珍将安丰之城攻破,红巾军将领刘福通战死,朱元璋的军队进城之后,与张士诚的军队展开了激战,把小明王救出了安丰城。朱元璋在与吕珍展开激战之时,猛将常遇春率先冲锋在前,三战三捷。吕珍抵挡不住,见势不妙只得败退。接着,朱元璋又命徐达、常遇春等人攻打庐州,自己则先回应天,并摆设銮驾迎接小明王。途经滁州时,朱元璋建造宫殿,将小明王安置在那里,供养起来。同时又把小明王的左右侍臣全都换了自己的心腹,以便监视。这样,小明王完全被控制起来了。果然不出刘基所料。陈友谅听说朱元璋兵出安丰,支援小明王,便以为时机已到。陈友谅在自己控制的各个地区,强拉壮丁,要求辖区内的平民百姓们必须每三人中出一个壮丁,拼力凑齐了60万人马。陈友谅还在湖广行省征集了大量的农夫、市民,作为预备兵,企图一举拿下朱元璋,以报当初兵败蒙辱之仇。而且,陈友谅这一次所造的战舰比龙湾那次的还要巨大威猛,舰高数丈,长几十丈,战舰的外侧涂上红漆,上下三层,每层都设有马棚,可以跑马,而且隔层很厚,住上下层的人彼此听不到说话。最底下的一层设板房。置放几十支大橹,为了增加橹身的坚硬程度,陈友谅命人纷纷把橹身用铁皮包裹起来。战舰共分三种:大舰可载3000人,中型战舰可载2500人,小型的也可载2000人之多。在经过了3个月的草草训练之后,陈友谅就急不可耐地倾巢出动。60万大军,旌旗列列,浩浩荡荡,向南昌方向全速驶来。为了志在必得,陈友谅甚至把百官们的家属一起用船载来,以表示自己必胜的决心。然而,陈友谅却在决策上犯了一个重大错误。他没有直接进攻朱元璋的安身立命的大本营应天,而是扑向洪都。在军事行家看来,这是一个极大的错误,因为这个时候应天府中兵力空虚,如果不趁此良机一举夺得,今后将会困难重重,不打应天反而去攻打洪都,将会使朱元璋腾出时间,撤兵返回。据史学家推论,陈友谅之所以不攻打应天,很有可能是鉴于上一次攻击应天城失败的教训,才导致并没有直接进攻应天,而是攻击洪都。朱元璋的洪都守军不足1万人马。大都督朱文正得知陈友谅气势汹汹而来,迅速进行了紧急动员,派遣参政邓愈守卫最重要的要道——抚州门,元帅赵德胜坚守宫步、士步、桥步三门要地,并且指挥薛显守章江、新城二门,大将牛海龙等守琉璃、精台二门。朱文正自己率2000人,居中节制,进行全面的指挥调配。洪都城的西南面城墙,濒临赣江,过去陈友谅曾经攻占过这座城池,他是趁江水上涨之际,从船上直接架梯攀附城墙,一干人马迅速攻入城中的。自陈友谅手下大将胡廷瑞归附后,朱元璋鉴于上次攻城的教训,责令将士拆毁西南部的旧城,然后再离江岸后退30步修筑新墙。这次陈友谅来犯,还以为环境同上次一样,还想用高大的战舰直接攻入城中,可谁知来到眼前一看,船只根本靠不到城墙,他无奈之下只得弃舟,率兵登岸围攻洪都。