大明洪武二十一年(1388年)的捕鱼儿海之战,名将蓝玉聚歼北元主力,一战封神,成就继卫青、霍去病、窦宪、李靖后第五位饮马瀚海、封狼居胥的功业。北元遭此一战,彻底崩溃,大明的军功趋于顶峰。
捕鱼儿海之战后,北元末代大汗被阿里不哥的后裔弑杀,北元残部由北元太尉乃儿不花统率,乃儿不花带着数万部众游荡在蒙古草原上,过着有了上顿没下顿的苦日子。
熟悉朱元璋的朋友都知道他老人家有个性格特征,那便是“要么不做,要么做绝”。虽然北元已经崩溃,但乃儿不花所辖的北元残部仍有一战之力,如果放任不管,任其做大,又是个威胁。再加上朱元璋还有一个战略考量,那就是准备以藩王代替大将执掌边境兵权,是为塞王守边。早在洪武十三年时,朱元璋就将自己的次子秦王封在西安、三子晋王封在太原、四子燕王封在北平,许其节制陕西、山西、河北沿边军民,只不过当时三王尚年少,只是遥领,兵权依旧在徐达、李文忠、冯胜、蓝玉、傅友德等守边大将手里。
随着徐达、常遇春、李文忠等名将的凋零以及藩王逐渐年长,朱元璋开始逐步将边境明军实际指挥权转移到藩王手中。但毕竟是军国大事,不能儿戏,朱元璋必须对自己儿子们的实力进行考验,恰好乃儿不花就是最好的选择。
洪武二十三年(1390年),朱元璋让名将傅友德赴北平协助燕王朱棣,让耿炳文赴太原协助晋王,分别从河北、山西两地出长城北征乃儿不花。晋王出塞后没有找到乃儿不花主力,不久后率军回撤,虽无大功但也没有损失,只能算及格。
再看燕王朱棣这厢,朱棣与傅友德从古北口出关后一路北上,一开始也是没找到乃儿不花的主力,又突降大雪,傅友德遂建议撤回长城,以减少后勤补给线。但朱棣却坚持继续北上,朱棣认为大雪天气更能出其不意,并亲自拣选5000精骑深入大漠寻找乃儿不花主力,为减少后勤压力让傅友德大军明军大部队退回长城,如此一来就形成了朱棣5000骑兵对战乃儿不花数万亡命之徒的局面。
经过漫长的搜寻,最终明军游骑发现乃尔不花的主力在迤都山一带游牧,朱棣遂冒着大雪,突袭乃尔不花的驻地,并将其团团包围。彼时,乃尔不花仍有数万部众,如果明军一味强攻,即便取胜也将伤亡惨重,况且朱棣只有5000人,真要打起来,胜负还真未可知。于是,朱棣派出与乃尔不花交好的观童(投降明朝的北元军官)赴乃尔不花营中招降。朱棣许诺将善待乃尔不花的部众,并赠送了粮食给乃尔不花,这对缺衣少粮的乃尔不花无疑是雪中送炭,于是乃尔不花欣然受抚,率部投降明军。至此,北元最后的残余力量被明军消灭,朱棣将乃尔不花的部众迁往北平附近的草场,并从其中拣选了3000精壮,组建精锐骑兵突击部队(这便是声动天下的三千营的前身)。
洪武二十三年的北征,是朱元璋时代最后一次大规模征讨北元的军事行动,此战彻底肃清了北元残部,而朱棣以5000骑兵击败、收降北元最后的军事力量,一战成名,从此成为大明最耀眼的军事明星,之后更是以北平为根据地开始了自己的王图霸业。