但边民都内迁以后,出现了新问题,边地地区的土地就这么白白浪费了吗,于是乎朱元璋走出第二步,在边地地区强化卫所制度,并让卫所的兵士在当地屯田,平时种地,有战事的时候就出战,寓兵于农、兵农合一,所以后来朱元璋得意地说自己养兵百万不费百姓一粒米。稳固边地以后,朱元璋又开始军事、政治、外交等手段并用,意图瓦解北元政府。洪武十三年(公元1380年)二月、洪武十四年(公元1381年)正月、洪武二十年(公元1387年)正月,朱元璋先后组织第三、第四、第五次北征,不过这几次作战不再是直扑北元中央政府,转而蚕食北元军事要地,招降北元军政大员,不断消耗北元有生力量。特别是第五次北征,盘踞在辽东近二十年的北元重臣纳哈出在明朝的恩威并施下出降,北元一下子损失了二十万大军,加上此前洪武十五年(公元1382年)明朝已经平定云南,北元朝廷左膀右臂被切断,使得形势发生了巨大变化。
朱元璋决定趁热打铁,认为“肃清沙漠,在此一举”。洪武二十年(公元1387年)朱元璋以蓝玉为征虏大将军(主帅),发动规模浩大的第六次北征。当时元昭宗已经病逝,他的弟弟(也有说是儿子)继位为帝,是为天元帝。天元帝觉得明军前不久才与纳哈出作战,粮草匮乏,不会深入北方再战,因此没有作迎敌的准备,只是将自己的老营远远迁到捕鱼儿海(今贝尔湖)之畔,每天吃好喝好,想等明军师老兵疲后主动退兵。应该说天元帝想得很好,但他忘了他的对手是蓝玉,洪武五年蓝玉曾经败于王保保之手,他做梦都想打败王保保来证明自己,虽然现在王保保已死,但蓝玉不会放弃复仇的机会,他将用北元的灭亡来证明自己的军事才能,证明他蓝玉才是如今最优秀的将领。洪武二十一年(公元1388年)四月风尘仆仆的蓝玉赶到捕鱼儿海,元军的松懈出乎他的意料,蓝玉没有多想立即对北元发起猛烈进攻,突如其来的袭击打得天元帝措手不及,除了他与长子天保奴等几十人逃脱以外,剩下的人马全部被明军俘虏,这一次北元将老底全丢光了,复兴大业再无从谈起。