明洪武元年(1368)朱元璋攻占元大都北京后,派大将徐达、副将军常遇春率大军攻山西,八月,攻克太原。据守太原的元朝守将扩廓帖木儿仓皇出逃大同。
洪武二年(1369)正月,常遇春率郭英、汤和、耿炳文、汪兴祖直取大同,元扩廓帖木儿闻讯,急逃甘肃。拒守大同的元将竹贞弃城出逃,明军占领大同。
大同归明后,其周围仍有许多要地为元军所盘踞,逃亡多伦的元顺帝仍有相当势力,史称北元。他们相互策应,经常侵扰边境,成为明朝北边国防的大患之一。
洪武二年(1369)八月,屯兵盖里泊(今内蒙古沽源、商都间)的元顺帝命脱列伯、孔兴以重兵围攻大同,欲图东山再起。时张良臣投诚复叛。徐达率兵从东西南北四个方向攻占庆阳外围地区。张良臣向扩廓帖木儿求援,扩廓帖木儿为救援庆阳,发动了三方面的攻势:一攻大同,欲下太原;一攻凤翔,以牵制明军;一攻泾州断徐达后。明太祖诏偏将李文忠自北京进援庆阳,行军至太原时,听说大同被围,文忠和左丞相赵庸等商议:“吾与若等受命而来,阃外之事苟利于国者,专之可也,今大同甚急,若候进止,岂不失机!”(《明太祖高皇帝实录》)众皆赞同。于是回兵雁门关,在马邑击败元军游骑数千,擒元平章刘帖木儿。进至白杨门(今山阴、朔县间),遇元兵夜里劫营,文忠阻水为营,坚壁不动。并预先派人把消息告诉大同城中守将。元将脱列伯获讯率精锐来攻,文忠先以两营诱敌,大军闭营不动,待到元军饥饿疲惫时,文忠分军左右包围夹击,自当前锋身先士卒,奋勇杀敌,遂大破元军,生擒脱列伯,俘获一万余众。孔兴败走,被手下部将所杀,提头来降,大同解围。元顺帝恢复之企图,经此失败,大受挫折。此后,明太祖对北元进行了数次大规模的军事行动。
洪武三年(1370),明太祖派徐达为征虏大将军,李文忠等为副将,分兵北伐。徐达率冯胜、邓愈、汤和为西路军,出潼关征扩廓帖木儿,李文忠为东路军,出居庸关北征元主。同时以守御华云龙及大同指挥使金朝兴、大同都督同知汪兴祖等先进攻云中地区,以策应西路作战。二月间,华云龙在云州地区,擒元平章火儿忽答及左丞哈海等。金朝兴攻克东胜州(内蒙古托克托),获平章荆麟等18人。汪兴祖克武州(五寨县)、朔州,元宗室四大王逃到静乐岢岚山中。六月,李文忠率十万大军出野狐岭北伐,至兴和,降其守将。进兵察罕脑儿,擒平章竹贞。进攻到开平时,闻元顺帝已死,昼夜兼程,穷追不舍,至北庆州,擒国公江文清等,降三万余众,追至红罗山,杨思祖等一万多人请降。李文忠因功封曹国公。洪武六年(1373)十一月,扩廓帖木儿兵至大同北,左副将军李文忠、右副将军冯胜率师北伐,获故元平章邓孛罗帖木儿、武平章康同佥。洪武七年(1374)四月,李文忠率兵再次北伐,至三不剌,擒故元平章陈安礼、木屑飞。至顺宁杨门,斩其将贞珠禄。至朔州,又擒其太尉伯颜不花。八月,攻克大石崖,抵达丰州,分道追击,擒元故官12人,军士二百余人。第二年,故元广平王保咱、司徒保保、威宁王帖木儿等11人自大同归降。尔后数年间,明太祖又数次派兵进行大规模围剿。明成祖五次亲征,才将明朝北边国防的三大患之一基本扫除。

|