公元1368年元月,朱元璋在应天府建国。八月,征虏大将军徐达攻取元大都,元顺帝北逃。明太祖朱元璋改大都为北平,以应天府为南京。至1370年,明朝先后降服占据广东的何真和占据四川的夏国明升,朱元璋借助农民战争建立起来的朱明政权归于一统。
徐达攻下元朝大都后,元大都以北至漠北、辽东至陕甘仍未元朝王室控制,云南被元梁王占据。刚刚建立的明朝处在元朝的势力包围之中。终其太祖一朝,明兵对元王室及诸王展开了整整二十年的征战。
自从元顺帝北逃上都,即命河南王王保保由山西反攻大都。没等王保保反攻,徐达的大军已经来到山西,王保保兵败,逃往甘肃。次年春,徐达进军陕甘,逼降地主武装李思齐。四月,太祖调常遇春与李文章同率步骑兵九万,进攻元上都开平。两月后,明兵攻下开平,元顺帝逃往应昌,常遇春病死。
1370年元月,朱元璋再命徐达为征虏大将军,李文忠、邓愈为左副将军,冯胜、汤和为右副将军,率领大军分东西两路进行北征。
徐达率西路军自潼关出西安,行至定西沈儿峪口大败王保保,擒元郯王、文济王以及国公、平章等官一千八百六十五人,将校士卒八万四千余,获马一万五千匹。王保保带妻子出宁夏逃往元廷旧都和林。
李文忠率东路军出野狐岭,途径云州、宣德、胜州、武州、朔州等地,屡屡战胜元兵。
4月28日,元顺帝在应昌病死,元昭宗继位。李文忠得讯,火速率军北进,攻破应昌。元昭宗仅带数十骑逃出。幼子、后、妃、宫人、诸王、官属尽被俘获。李文忠领兵追击元昭宗至北庆州,不得元昭宗踪迹,领兵而还。
1371年,广西、四川先后平定,朱元璋尚有三件未了之事。一是传国玉玺仍在蒙古。二是王保保尚未擒获。三是元太子下落不明。
而此时的情况是,元太子自应昌北上庆州,而后前往蒙古旧都和林,倚任王保保继续称帝。蒙古尊号称元昭宗为必力克图可汗。元昭宗仍然奉大元为国号,建年宣光,并遣使高丽。高丽已于朱元璋建国后接受明朝封号,因而只称岭北大元为“北元”。
1372年元月,朱元璋获悉“北元”的情况,仍命徐达为征虏大将军,李文忠、冯胜为左右副将军,各率五万骑兵,发兵十五万,分三路远征岭北,号“清沙漠”,欲图一举歼灭“北元”,永除后患。
徐达率中路大军直捣蒙古旧都和林,李文忠率东路军经应昌赶赴岭北,冯胜率西路军进兵甘肃。
二月,徐达兵至山西,都督蓝玉为先锋,出雁门至野马川遇蒙古军,交战获胜,既而进至土刺河。王保保败逃诱敌。五月,徐达亲率大军深入漠北。王保保与骁将贺宗哲领兵突袭,徐达大败,副将汤和另路出兵,也被蒙古军击败。中路五万骑兵几乎全军覆没。
李文忠于六月间经土刺河进至阿鲁浑河,一直到达称海后还师。沿途与元军屡战,互有胜负。可孤军深入,兵源无补,军中将领战死者高达九成。有兵无将,东路大军亦损失惨重。
西路大军六月进至兰州,直取西凉。又至永昌、瓜州、沙洲。数战皆胜,多有俘获。掳获的驼马牛羊便达十余万。十月,冯胜班师回京,被告私匿驼马,明太祖不予行赏。
此次远征岭北,明廷只有西路获胜。中路主力惨败,兵力大损。东路将领几乎尽亡,胜败持平。此后十余年,明朝与岭北元廷暂时处于了对峙的状态。