元璋两大敌国,张士诚地近国富,陈友谅地远兵强,应该先灭哪一国呢?刘基的估量是友谅轻骄,喜欢生事,士诚狡懦,没有远志;先攻友谅,士诚不会出兵援救,先攻士诚,友谅一定起大军来袭。元璋从刘基议,决计先灭陈友谅。
二十三年,陈友谅军号称六十万,攻南昌。朱元璋亲督徐达、常遇春诸将率师二十万往救。两军会战鄱阳湖中康郎山下水面,元璋兵力不敌,赖将士死战,胜负约略相当。最后友谅军败,收余众自保不敢出战,杀吴军俘虏泄愤。元璋得报,却给汉俘虏医治伤病,释放回去,又下命捕获敌军,不得杀害。友谅军心懈散,相持十五日,冒死突围,元璋追击,友谅中流矢死,余众大溃。友谅子陈理遁归武昌称帝。诸将多劝元璋乘胜直取武昌,元璋不从,回应天布置防御,留徐达等屯军要害备张士诚,自率诸将攻陈理,围城凡六月,二十四年,陈理降。江西、湖南、湖北地尽归元璋所有。
正当朱元璋攻陈友谅的时候,张士诚在苏州大造宫室,自称吴王,荒淫不理政事。二十五年,士诚起马、步、舟三军二十万人围诸全州(浙江诸暨县),明守将胡德济会合李文忠、朱亮祖援兵,大破士诚军,元璋定计先取士诚两淮地,再专力攻浙西。二十六年,两淮平,命徐达、常遇春率大军二十万攻士诚,徐达破湖州,李文忠破杭州,华云龙破嘉兴,士诚势孤。二十七年,大军合围苏州,擒张士诚。