1356年,朱元璋建立江南政权后,计划在此基础上统一天下。但是,此时位于朱元璋大军南北还有两个势力庞大的军事集团。东面的张士诚,在紧邻应天府的平江(今江苏苏州)建立了国都,割地称王。南面的徐寿辉则定都汉阳,建立了天完政权。北方还有刘福通、韩林儿占据潼关,建立了龙凤政权。而朱元璋的江南政权依然处于元军的包围之中,应天府危机四伏,城中之人惶惶不可终日,文武官员有的主张逃跑,有的主张开门投降,也有的主张分兵抗敌。
谋士朱升向朱元璋献上了一计,仅有九个字:高筑墙、广积粮、缓称王。“高筑墙”便是要加强军事防御建设,稳固后方;“广积粮”便是发展生产,加强经济实力,以应付长期的战争;“缓称王”便是要朱元璋讲求实效,不图虚名,不急于称王,以免树大招风,而成为众矢之的。
朱元璋积极采纳了朱升的建议,承认小明王韩林儿的宋政权,处处打着宋政权的旗号办事,因此,受到了刘福通红巾军的保护。同时,朱元璋在应天府大兴水利,恢复生产,并派遣徐达攻占了镇江等周边战略要地,将势力扩展到了苏、浙、皖、赣一带。
在消灭了位于东南部孤立的元军后,朱元璋便与各地的割据势力展开较量。朱元璋手下最有名的谋士叫刘基,他清楚地分析了当时的形势,认为张士诚只是个贪图享受的人,不可怕。而取徐寿辉而代之的陈友谅却野心惊人,令人感到非常危险。而且,如果先攻打张士诚,陈友谅必定会前来全力相救,势必就会造成两面受敌。因此,应该先消灭掉陈友谅,而后再征服张士诚。朱元璋听从了他的意见,决定先对付陈友谅。
陈友谅出生在沔阳的一个渔民家庭,小时候上过几年的私塾,在县衙里曾经做过文书,颇有心机。后来投奔了徐寿辉的起义军,在倪文俊的手下做文书,立下了汗马功劳,升为大将,并且最终杀死了倪文俊,占有了他的部队,成为天完政权中最有实力的人物。公元1359年年底,陈友谅将徐寿辉从汉阳接到军中,把这个没有实权的皇帝控制在自己的手中。第二年五月,陈友谅用铁锤打死了徐寿辉,将国号改为汉,自己做了皇帝。之后,陈友谅偷袭应天府,被朱元璋打得大败,单是被俘虏的士兵就有两万多人。陈友谅非常不服气,回去之后,他下令几百艘大战船做好准备。这些战船,每艘都高达数丈,分上、中、下三层,里面有梯子相连,外面涂上红漆,非常雄伟。经过了充分的准备,陈友谅决定寻找机会,报应天之仇,消灭朱元璋。
1363年三月,陈友谅听说朱元璋亲自率领大军到安丰去营救小明王,便立刻下令动员全军,亲自统率60万水陆大军沿长江而下。
陈友谅的大军首先将洪都(今江西南昌)包围,守卫洪都的是朱元璋的侄子朱文正,他按照朱元璋的嘱咐,坚守不出。陈友谅知道朱元璋将主力带到了安丰,洪都城里不会留有很多守军,因此便亲自督战,让士兵架起云梯,头戴竹帽拼死攻城。朱文正指挥着守军,用火炮、火锍、滚木、火箭、石头一次又一次打退了敌人。形势万分危急,朱文正一面派部将张子明赶到应天求援,一面派人到陈友谅军营中假装投降发拖延时间。陈友谅信以为真,停止了攻城,结果到约好的时间,却没有看见朱文正的踪影,陈友谅气得咬牙切齿,下令继续攻城。
张子明赶到应天府向朱元璋报告了军情,朱元璋让他回去转告朱文正,只要坚守一个月,援兵就可以赶到。朱文正在艰苦的条件下,一直坚守了85天。
1363年七月,朱元璋亲率20万水军到达湖口(今江西湖口),陈友谅听到这个消息,便把围攻洪都的军队撤下来,准备在鄱阳湖消灭朱元璋的主力。当时两支军队的力量差别很大,陈友谅有60万大军,战船几百艘。而朱元璋只有20万大军,战船都很小,根本没法跟陈友谅的大战船作战。朱元璋要想取胜,只能巧取,不能强攻。
朱元璋发现陈友谅的大战船都用铁链连在一起,活动起来非常不方便。他和部将研究了一番,决定利用火攻,就像赤壁之战孙刘联军火烧曹营一般。
七月二十一日,双方在鄱阳湖边的康郎山一带摆开阵势,朱元璋手下的海军大将俞通海乘风放火,烧毁了陈友谅20多艘大战船,给了陈友谅一个下马威。
七月二十二日,双方主力再次会战,陈友谅的士兵居高临下,打得非常顺手。而朱元璋的战船十分矮小,将士们必须要仰着头才能交锋。结果,朱元璋的军队伤亡很重,大败而归。此时,大将郭兴向朱元璋建议道:“不是咱们的士兵胆小怕死,20小船敌不过大船,必须火攻才可以取胜。”
朱元璋欣然接受了郭兴的建议,立刻命令大将常遇春、俞通海找来一批渔船,在里面装上芦苇、火药。到了中午的时候,忽然刮起了东北风,朱元璋马上下令点火。很快,这些渔船喷着火、顺着风冲向了陈友谅的战船,大战船因为被铁链连着动不了,一时间浓烟滚滚,烈火冲天。陈友谅的士兵被杀死大半,溺水者不计其数。陈友谅的弟弟陈友仁、陈友贵和许多将领也都被烧死了。
这一仗,陈友谅可谓是元气大伤,又打了两天,陈友谅损兵折将,不得不向湖口突围。而朱元璋在谋臣刘基的建议下,早在湖口一带布下了埋伏。
八月二十七日,陈友谅集中了残余的力量试图突围,立刻被朱元璋的火船团团围住。陈友谅指挥战船东冲西撞,始终冲不破包围圈。陈友谅着急了,便想看看到底发生了什么事,不料刚从船舱里露出脑袋,便被一支流箭射穿了眼睛,惨叫一声,死了。
鄱阳湖一战,陈友谅的60万水军被灭,一批大臣、将领投降了朱元璋,陈友谅的一个儿子也被俘虏。他手下的一个叫张定边的猛将得以逃生,用小船载着陈友谅的尸体和他的另一个儿子陈理逃回武昌。公元1364年,朱元璋率军进攻武昌,彻底消灭了陈友谅势力。
消灭陈友谅后,朱元璋迅速挥兵向东,准备消灭张士诚。张士诚占据了南至绍兴(今浙江绍兴)、北至徐州、西至河南临汝、东连大海的大部郡县,都是非常富庶的地方。但是,张士诚最后投降了元廷,遭到了百姓和内部的强烈反对,根基逐渐不稳。
朱元璋根据张士诚占领地区南北狭长、中隔长江、南北兵力不便支援的弱点,命徐达、常遇春率领20万大军讨伐张士诚。首先攻下了湖州、嘉兴、杭州、绍兴等地,扫清了外围,对平江形成了三面包围之势。这时,张士诚的统治已经土崩瓦解,江苏昆山、崇明、嘉定、松江等地守军不战而降。张士诚独守平江孤城,还在做最后的挣扎。朱元璋的军队用弓弩、火铳和襄阳炮日夜攻击。一直围攻了八个月,张士诚军的很多将士投降。张士诚先后两次突围,都没有成功,最后被俘。
1367年十月十八日,朱元璋在占据长江南北后,便召开军事会议,商议讨伐元朝的战略。常遇春主张直捣大都,他认为如今南方已经平定,兵力众多,以精锐部队消灭元军,绝对可以取胜。在攻下大都后,便可以破竹之势,长驱直入,其余的城池就可以不战而下。朱元璋认为这并不是万全之策。因为大都是元朝经营了近百年的都城,防御非常坚固。元军在北方依然军力雄厚,恐怕一时难以攻取大都。于是,朱元璋决定,先取山东,打开一条路,然后挥师河南,剪断元军的羽翼,然后占据潼关。
朱元璋命徐达为征讨大将军、常遇春为副将,率领25万大军,沿淮河、运河、黄河北上进取山东、河南。又命征戌将军邓愈率襄阳、江陵之兵北上南阳,分散牵制元军的兵力,策应主力西取潼关。同时,朱元璋颁布檄文,提出“驱逐匈奴,恢复中华”的口号,号召齐、鲁、河、洛、燕、秦、晋的官民迅速归附,并指出蒙古、色目人只要不抵抗,便将其与汉人一样对待。
朱元璋告诫将士,所到之处,恪守军纪,不杀人、不夺财、不扰民,还规定不能杀耕牛,不能掠夺百姓的妻女。这样一来,民心安定,北伐军在徐达、常遇春的带领下,仅用了三个月便平定了山东,接着又平定了河南、攻下潼关,最后集中兵力向大都推进。
北伐军势如破竹,直逼大都,元顺帝和皇家贵族逃往上都。北伐军迅速攻占了大都,历经98年的元朝灭亡了。