公元1368年元月,朱元璋在應天府建國。八月,征虜大將軍徐達攻取元大都,元順帝北逃。明太祖朱元璋改大都為北平,以應天府為南京。至137o年,明朝先後降服佔據廣東的何真和佔據四川的夏國明升,朱元璋借助農民戰爭建立起來的朱明政權歸于一統。
徐達攻下元朝大都後,元大都以北至漠北、遼東至陝甘仍未元朝王室控制,雲南被元梁王佔據。剛剛建立的明朝處在元朝的勢力包圍之中。終其太祖一朝,明兵對元王室及諸王展開了整整二十年的征戰。
自從元順帝北逃上都,即命河南王王保保由山西反攻大都。沒等王保保反攻,徐達的大軍已經來到山西,王保保兵敗,逃往甘肅。次年春,徐達進軍陝甘,逼降地主武裝李思齊。四月,太祖調常遇春與李文章同率步騎兵九萬,進攻元上都開平。兩月後,明兵攻下開平,元順帝逃往應昌,常遇春病死。
137o年元月,朱元璋再命徐達為征虜大將軍,李文忠、鄧愈為左副將軍,馮勝、湯和為右副將軍,率領大軍分東西兩路進行北征。
徐達率西路軍自潼關出西安,行至定西沈兒峪口大敗王保保,擒元郯王、文濟王以及國公、平章等官一千八百六十五人,將校士卒八萬四千余,獲馬一萬五千匹。王保保帶妻子出寧夏逃往元廷舊都和林。
李文忠率東路軍出野狐嶺,途徑雲州、宣德、勝州、武州、朔州等地,屢屢戰勝元兵。
4月28日,元順帝在應昌病死,元昭宗繼位。李文忠得訊,火率軍北進,攻破應昌。元昭宗僅帶數十騎逃出。幼子、後、妃、宮人、諸王、官屬盡被俘獲。李文忠領兵追擊元昭宗至北慶州,不得元昭宗蹤跡,領兵而還。
1371年,廣西、四川先後平定,朱元璋尚有三件未了之事。一是傳國玉璽仍在蒙古。二是王保保尚未擒獲。三是元太子下落不明。
而此時的情況是,元太子自應昌北上慶州,而後前往蒙古舊都和林,倚任王保保繼續稱帝。蒙古尊號稱元昭宗為必力克圖可汗。元昭宗仍然奉大元為國號,建年宣光,並遣使高麗。高麗已于朱元璋建國後接受明朝封號,因而只稱嶺北大元為「北元」。
1372年元月,朱元璋獲悉「北元」的情況,仍命徐達為征虜大將軍,李文忠、馮勝為左右副將軍,各率五萬騎兵,兵十五萬,分三路遠征嶺北,號「清沙漠」,欲圖一舉殲滅「北元」,永除後患。
徐達率中路大軍直搗蒙古舊都和林,李文忠率東路軍經應昌趕赴嶺北,馮勝率西路軍進兵甘肅。
二月,徐達兵至山西,都督藍玉為先鋒,出雁門至野馬川遇蒙古軍,交戰獲勝,既而進至土刺河。王保保敗逃誘敵。五月,徐達親率大軍深入漠北。王保保與驍將賀宗哲領兵突襲,徐達大敗,副將湯和另路出兵,也被蒙古軍擊敗。中路五萬騎兵幾乎全軍覆沒。
李文忠于六月間經土刺河進至阿魯渾河,一直到達稱海後還師。沿途與元軍屢戰,互有勝負。可孤軍深入,兵源無補,軍中將領戰死者高達九成。有兵無將,東路大軍亦損失慘重。
西路大軍六月進至蘭州,直取西涼。又至永昌、瓜州、沙洲。數戰皆勝,多有俘獲。擄獲的駝馬牛羊便達十余萬。十月,馮勝班師回京,被告私匿駝馬,明太祖不予行賞。
此次遠征嶺北,明廷只有西路獲勝。中路主力慘敗,兵力大損。東路將領幾乎盡亡,勝敗持平。此後十余年,明朝與嶺北元廷暫時處于了對峙的狀態。