徐达在车道岘大败王保保,李文忠于应昌扫荡故元巢穴,沉重打击了元朝残余势力。但是,元顺帝之子爱猷识理答剌逃离应昌后,又在和林即帝位,其部下的残余兵力依然不可小觑。他们随时有可能重整旗鼓,纵兵南下掠夺。而明朝政府统一北方后,部署在北部边沿地区的驻防官兵及防御体系还非常脆弱,非常需要一个有胆有识、有勇有谋的人前去镇守。徐达再次成为明太祖的最佳人选。
洪武四年(1371年)正月初三,在徐达第一次北征回京后不到两个月,明太祖为了加强北部边防,命中书右丞相魏国公徐达前往北平负责操练军马,修缮城池,镇守北平。半年多后,再次被派转镇山西。同年十二月,徐达自山西回到京城。
徐达在镇守北平期间,先后三次迁徙山西、河北等地农民到北平屯田种地,以加强北平的防御力量。徐达将他们分散到长城沿线各卫所,按其户籍服役课税。属籍军户的,发给衣服、粮食,使应军差;属籍民户的,分给田地、牛、种子,使纳租税。前后移民三万五千多户,十九万余人,建立屯田点二百五十余个,垦田一千三百多顷。徐达的这些措施大大减轻了北方军队的粮饷供应问题,使明朝北部边疆日趋稳定。同时,徐达严格训练士卒,修缮城池,加强守备,谨严烽燧,时时防备元朝残余军队的侵扰。徐达因此被明太祖视为“塞上长城”。
王保保逃到和林后,重被元顺帝之子爱猷识理答剌委以重任,王保保的权势又日渐膨胀。明朝君臣对此极为关注,担心王保保卷土重来,为害大明北部边境。洪武五年正月十七日,明太祖召见魏国公徐达、曹国公李文忠、宋国公冯胜,分别赏赐交趾弓、彤弓,并对他们说:“古者诸侯有四夷之功,则赐之弓矢……”徐达等知道明太祖心中不忘北元,估计朝廷会再度兴师北征。虽然他们对朝廷连年征战有不同意见,但在正月二十二日明太祖召集诸将商讨边境事宜的时候,中书省右丞相、魏国公徐达还是主动请缨,说:“今天下大定,庶民已安,北虏归附者相继,唯王保保出没边境,今复遁居和林,臣愿鼓率将士以剿绝之。”但这时,老谋深算的朱元璋并没有急于说出自己的想法,他为了了解将军们的态度,故意说:“彼朔漠一穷寇耳,终当绝灭,但今败亡之众,远处绝漠,以死自卫,困兽犹斗,况穷寇乎?姑置之。”这时,在场的将军们纷纷表示:“王保保狡猾奸诈,使其在,终必为寇,不如取之,永清沙漠。”明太祖见众将领都赞成出兵,便趁机问道:“卿等必欲征之,需兵几何?”徐达自信地回答:“得兵十万足矣。”明太祖认为兵分三路同时出击,十万兵力不够,于是他以不容置疑的口气道出了自己胸中的计划,说:“兵需十五万,分三道以进。”随即,明太祖仿效洪武三年北征残元时的办法,任命徐达为征虏大将军,总帅由左副将军李文忠负责的东路军、征西将军冯胜负责的西路军以及由徐达亲自统领的中路军三路兵马,中、东、西三路,各为五万兵马。
在三路北征官兵中,以徐达亲自指挥的中路军进军最为迅速。二月二十九日,大将军徐达率部进入山西。随即,都督蓝玉奉命为先锋,率兵马先出雁门关。蓝玉兵至野马川时,遇到了一股北元游骑,北元兵不战而逃。蓝玉率部追至乱山,敌军返身迎战,结果被蓝玉打得大败。三月二十日,徐达率军至土剌河一带,与王保保发生遭遇战,蓝玉等勇往直前,再败王保保军。扩廓败逃后,与贺宗哲部合为一军,在岭北布下阵势阻击徐达部队。五月初六,徐达统兵进至岭北,与北元军队对垒。由于明朝官兵连续作战,得不到休整,将士深感疲惫,加之徐达所率的中路军自出征以来连战告捷,进军颇为顺利,军队中产生了骄傲轻敌情绪,而王保保、贺联军拼死进攻,明军受挫,死伤数万人。幸亏徐达处变不惊,收缩战线,坚守营垒,才免遭大败。然后,徐达整军而还,敛兵守塞。王保保军队见此未敢贸然追击。中路军刚败,东路军在李文忠率领下长驱直入,王保保在阿鲁浑河(今鄂尔浑河)、称海(和林偏北)布置两道防线层层防御。李文忠率部苦战,损失惨重,宣宁侯曹良臣、骁骑左卫指挥使周显、振武卫指挥同知常荣、神策卫指挥使张耀等高级将领战死,无奈之下,也撤兵南返。三路大军之中,只有冯胜所率西路军完成了作战任务,在西凉州(今甘肃武威)、永昌(今甘肃永昌)、扫林山(今甘肃省肃北县境)、瓜州(今甘肃安西)、沙州(今甘肃敦煌)击败北元军,占领甘州(今甘肃张掖)和亦集乃路。这一次北伐,收获远少于损失,明太祖朱元璋不得不承认失败。同年十月,征西将军冯胜等因北方天气日渐寒冷,先从甘肃班师回到了京城。十一月,征虏大将军徐达、左副将军李文忠也因塞上苦寒,撤驻山西、北平等近边地区休整后,也奉诏回到了京师。
(四)修建山海关
自洪武五年出征北元失利后,明太祖逐渐认识到元朝残余军事力量一时难以消灭,因此明朝对北方的战略从以攻为主转为以防御为主。从此,徐达长期在北平、山西一带练兵戍边,镇守北平十余年。虽然徐达其间还多次奉诏出征北漠,讨伐北元,但由于北元残兵势力已大不如前,王保保也于洪武八年八月在漠北死去,明朝也少了一个劲敌,因此此后的征伐也较以前顺利了很多。洪武十四年(1381年)正月初二,由于北元平章乃儿不花等犯境,明太祖再次诏命魏国公徐达为征虏大将军,率左副将军信国公汤和、右副将军颍川侯傅友德等将士前往讨伐。徐达奉命来到北平后,一面加紧开展战前准备工作,一面积极修缮沿边关隘,以完善北部防御体系,增强其战守能力,以有效抵御北元骑兵的入侵。正月二十五日,徐达下令调发燕山等卫屯兵一万五千余人,修筑永平府界岭等三十二处关隘,这就是闻名世界的山海关。嘉靖年间的《山海关志》里面记载说:“国朝洪武十四年,创建城池关隘,名山海关。”从此,山海关成了北京东面的咽喉要塞。山海关的修建,使这一带的长城固若金汤,成为阻止蒙古骑兵南下的重要屏障,也使得周边的老百姓从此免于战乱,更使大明王朝从此没有了蒙古兵经常在这一带不断骚扰而又奈何不得的痛楚。同年四月十五日,大将军徐达正式统领官兵出塞,讨伐北元之兵。右副将军傅友德为前锋,率军进抵北黄河,北元骑兵惊恐万分,仓皇逃走。傅友德选派轻骑乘夜袭击灰山,将其一举攻克,擒元将别里不花、太史文通等,并俘获大批人口、牲畜。稍后,徐达派部将西平侯沐英率兵出古北口(今北京市密云县东北),连克全宁等蒙古四部。生擒北元枢密知院李宣,俘虏敌众一千余人。同年八月二十九日,徐达等奉诏班师回到京城,为他生平最后一次出征画上了一个圆满的句号。
(五)戎马一生,将星陨落
自元至正十三年投奔朱元璋所领导的红巾军以后,徐达或拼杀沙场,身冒矢石,或出镇边塞,历经雨雪风霜,数十年如一日,为开辟大明江山、稳固新生的明朝政权呕心沥血。长期的戎马生涯,奔波劳累,使徐达的身体逐渐支撑不住,终于积劳成疾,一病不起。洪武十七年(1384)闰十月,徐达在北平病重,朱元璋遣使将他召还京师应天。据史料记载,在徐达疮疾缠身、久治不愈时,明太祖心急如焚,唯恐失去他这位开国元勋。为了能使徐达早日康复,明太祖不但遣使“四召名医治之”,而且特地在洪武十七年十二月举行祭礼,祷告山川、城隍之神,乞求神灵保佑徐达痊愈。洪武十八年正月二十六日,明太祖得知徐达“病疮而愈”,很是高兴,还特意派遣徐达的长子徐辉祖持其玺书前去慰问徐达。不料,徐达已见好转的病情后来又突然恶化。洪武十八年二月二十七日,徐达病逝于应天府邸,时年54岁。明太祖朱元璋闻讯后,“袒跣奔(徐)达寝,抚尸而恸”,并为之停朝数日,以表示对徐达的哀悼。同时,下诏追封徐达为中山王,谥武宁,赐葬钟山之阴,并准其配享太庙,名列功臣第一。
关于徐达的死因,有些史书记载:“(徐)达病疽,甫痊,赐蒸鹅,流涕食之而卒。”这些材料虽不完全可靠,但也不是捕风捉影,随意捏造的。朱元璋当了皇帝以后,为了确保朱明皇朝“万世一系”,便想方设法加强皇权,凡是他认为有碍于独裁统治的人,不管是勋臣,还是宿将,一律剪除。胡、蓝党狱,把功臣旧将几乎一网打尽。前一年又将南征北战、立下大功的义子亲外甥李文忠暗中毒死。徐达虽为开国功臣,立下盖世奇功,而且一直忠贞不贰,但想到他的震主之威,朱元璋“赐蒸鹅”一事也就并非子虚乌有了。