至正十六年(1356),朱元璋建立的江南政权,拥有了包括应天府(南京)在内的富饶的江南地区,他计划以此为基础一统天下。但这时形势还十分复杂,南北都有实力强大、同样想问鼎天下的对手,如张士诚在紧邻应天的平江(今江苏苏州)建立了国都,企图割地为王;南方徐寿辉定都汉阳,建立了天完政权;北方还有刘福通、韩林儿的龙凤政权攻占了潼关。而江南政权还处在元朝军队紧密包围中,应天可谓危机四伏。朱元璋想一一迅速将他们剿灭,但深感力不从心。
徐达墓这时又有一位熟读兵书、韬略深邃的寒士朱升给朱元璋献上一计:“高筑墙,广积粮,缓称王。”其中“高筑墙”,就是加强军事防御建设,巩固后方,守卫好已得地盘,不可得而复失;“广积粮”,就是要发展生产,加强经济实力,准备好应付长期战争的物质条件;“缓称王”,则是要朱元璋讲求实效,不图虚名,不急于称王,以免树大招风,成为众矢之的。这条斗争策略无疑是十分正确的,朱元璋采纳了朱升的建议,没有立即称王,而是一面在应天屯田,兴修水利,积极恢复农业生产,另一面,派徐达攻下镇江,命邓愈攻下广德,又亲自率大军攻占宁国(今安徽省东南部)等周边战略要地,保证了应天的安全。经过两年左右的时间,江浙省西部的元朝统治区大都被朱元璋攻占,并将势力进一步扩展到苏、浙、皖、赣,而这一带成为他补充兵源和军需物资的基地。
消灭了位于东南部的孤立元军后,朱元璋开始与各地的割据势力展开较量。至正二十三年(1363),陈友谅特制楼船数百艘,号称六十万大兵包围洪都(今江西南昌)。陈友谅是个权力欲很强的人,此前他杀害了徐寿辉,篡夺了天完政权,改国号大汉,自称皇帝。他乘朱元璋出兵安丰之际,大举来犯。洪都守将朱文正率城内军民坚决死守了八十五天,使朱元璋赢得了时间,率二十万大军前来援助。陈友谅退到鄱阳湖迎战,爆发了著名的鄱阳湖水战。这一次朱、陈之战长达三十六天,战斗打得十分激烈,陈友谅几乎全军覆没,而朱元璋的部下伤亡也很大,几名大将宋贵、张志雄、韩成等都战死了。最后在混战中,一枝飞箭射中了陈友谅的眼睛,并穿过头颅,陈友谅身亡,大战结束。至正二十四年(1364)正月,朱元璋回到应天自立为吴王,建置百官。二月,朱元璋率水陆大军再次征讨武昌,陈友谅之子陈理投降,大汉政权灭亡。
灭汉后,下一个目标就轮到了张士诚。至正二十六年(1366),朱元璋发布声讨张士诚的檄文,痛斥他的八大罪状,制造攻灭张的舆论。张士诚曾在高邮战役战胜元军后,占领平江,并在此建立了政权。张士诚所统治的地方是长江三角洲的最富庶之地。他与朱元璋在镇江对峙,双方不断发生战争。张士诚屡战屡败,后来投降元朝,被封为太尉。至正二十三年(1363),张士诚又自立为吴王。之后,他就开始养尊处优,不管政事,和大臣将领们修府第、建园池,吃喝玩乐,腐化堕落。从至正二十年到二十三年,张士诚出粮,方国珍出船,每年给元朝往大都运送粮食十一万石到十三万石,还与红巾军为敌。至正二十六年(1366)八月,朱元璋命徐达、常遇春率二十万大军讨伐张士诚。十一月,攻下了湖州、嘉兴、杭州、绍兴等地,扫清了外围,对平江形成包围之势。九月,破城,张士诚被俘,自缢而死。
当平江攻破在即之时,朱元璋同时派出一队人马去攻打割据在浙东的方国珍。同时,又派军南下福建,平定陈友定。至正二十六年(1366)底,他又遣使到滁州迎接小明王,中途将其沉于江中,农民起义军的各个割据政权相继灭亡。
元至正二十八年(1368)正月初四,朱元璋在应天称帝,定国号大明,建元洪武。此时,元朝尚有北方半壁河山,福建、两广、四川、云贵等地方割据势力还很强大。明太祖建国后的首要任务就是继续完成统一大业。他派出大军北伐中原,发布文告:驱逐胡虏,恢复中华,立纲陈纪,救济斯民,这对北方人民反抗民族压迫颇具号召力。北伐军在徐达、常遇春的率领下,仅三个月就平定了山东,接着定河南,下潼关,最后集中兵力向大都推进。七月,北伐军逼近大都,元顺帝携后妃、太子仓皇逃奔上都,北伐军攻占大都,统治中国98年的元王朝灭亡。元顺帝于洪武三年(1371)四月死于应昌(今内蒙古克什克腾旗达里诺尔西)。其子爱猷识礼达腊继位,携残部退到漠北,史称北元。
北伐顺利进军的同时,南征也拉开序幕。洪武元年(1368)正月,汤和率领的南征军最终消灭了方国珍、陈友定,福建、两广尽入版图。洪武四年(1371),四川平定。十四年平云南。洪武二十年,山西、陕西以及东北平定。经过二十年的南征北伐,终于平定了各地的割据势力和残元兵力。除北元仍割据漠北,全国大部分地区实现了统一。
在短短二十年之间,朱元璋发展生产,扩充军备,徐图缓进,由一个四处逃难的和尚变成了大明的开国皇帝。