陈友谅本是徐寿辉手下大将倪文俊的部下。后来他杀死倪文俊,并于至正二十年(1360)挟持徐寿辉,攻占了太平、采石。于是陈友谅以为应天唾手可得,就杀了徐寿辉,在采石称帝,国号汉,改元大义。
陈友谅为了吞掉朱元璋,勾结朝廷太尉张士诚,约定东西夹击应天,平分朱元璋的领地。朱元璋收到消息,召集众将商量对策,一时众说纷纭,刘基提议必须集中力量消灭陈友谅。朱元璋同意刘基的判断,采用了诱敌深入的计策,朱元璋的部将康茂才和陈友谅是老朋友,他修书一封,派人送到了陈友谅营中,约陈友谅攻击应天,并说愿意在江东桥作内应。
六月二十三日早晨,陈友谅率舰队主力赶到应天郊外的江东桥,这时才发现桥是石桥而非木桥,这才知道自己中计了。但为时已晚,朱元璋的伏兵奋起攻击,陈友谅大败。
朱元璋收太平,占领信州、安庆。陈友谅败逃九江,第二年八月攻下安庆,于是朱元璋率军直取陈友谅的老巢江州,陈友谅逃往武昌,朱元璋攻克江西和湖北东南部。
正在这时,中原红巾军发生分裂,力量大大的削弱。至正二十三年(1363)二月,张士诚乘人之危,派部将吕珍进攻安丰,刘福通向朱元璋求救。等到朱元璋率军赶到安丰时,刘福通已被吕珍杀死,朱元璋只救出了小明王韩林儿,把他安排在滁州居住。在朱元璋率军营救小明王时,陈友谅认为自己反攻时机已到,于是率兵进攻洪都 。
朱元璋的侄子朱文正率领将士坚守了八十五天。
在至正二十三年(1363)七月,朱元璋统兵二十万,进发洪都,陈友谅获悉后,撤出围军,迎战朱元璋,双方在鄱阳湖展开决战。鄱阳湖水战从八月二十九日开始,至十月三日结束,进行了三十六天。朱元璋的军队充分发挥小船灵活的长处,火攻陈友谅军队,最终取胜,陈友谅最终也被乱箭射死。