七月,朱元璋返回应天,他临行一再告谕徐达等人:“中原人民,苦于动乱已经很久了。朕命你们北伐,就是为了解救人民。诸位将军攻克城镇,切勿抢掠,切勿焚烧,一定要让市场照样买卖营业,让百姓各安其生。”
徐达、常遇春率诸将会于河阴(今河南荥阳),然后分遣兵马进入河北。闰七月,徐达于临清招集诸将,部署具体进军方略,命傅友德开辟陆路以通步、骑兵,都督副使顾时负责疏浚河道以通水军。
明北伐军沿运河推进。常遇春首先攻陷德州,接着又克长芦(今河北沧州)、直沽(今天津)。据守天津的元丞相也速从海口望风而逃,大都震动,人心惶惶。
明军进至河西务(今河北武清东北),大败元军,生俘二百余人,乘胜推进到通州(今北京通县),又利用大雾天气,伏击元守军,守将布颜特穆力战身死。
通州失守的消息传到大都皇宫之中后,元顺帝大为恐慌,集合后妃、太子说道:“今日岂能重蹈北宋徽宗和钦宗亡国被俘的覆辙!”他不顾臣下的劝谏,以保命为先,于闰七月二十七日深夜,带着后妃、太子从建德门仓皇而出,经居庸关北走至上都开平(今内蒙多伦西北)。
八月二日,徐达率军进至大都齐化门,士兵填平城下的壕沟,进入城中。徐达登上齐化门城楼,兵士将元顺帝留下守城的淮王、左右丞相等人押到。这些人不肯投降,被徐达下令处死。其余的元朝大臣将士都以性命为重,愿意归顺明朝,他们都受到宽大处理,无一人被滥杀。徐达下令查封城中的府库图籍宝物,派指挥张胜带一千兵士守卫皇宫,同时严令所有将士,不得骚扰百姓。由于朱元璋早有告诫,以及徐达严厉约束,北伐军纪严明。大都城中官吏人民生活安定,一如平时,街市上的店铺买卖营业也未曾停顿。
攻取大都,标志着蒙元朝统治中国的结束。徐达即刻遣使向应天献捷,又命傅友德、华云龙负责整修城垣。朱元璋接到捷报后,宣布大赦天下;下令改大都为北平府,由孙兴祖、华云龙驻守;诏命徐达、常遇春、汤和、冯宗异等人率大军攻取山西、陕西等地,扫清元朝的残余势力。
大都攻克,元朝灭亡。但元顺帝逃至上都,仍然保持着完整的政府机构,元军的力量仍然不可轻视。西北地区尚在元残余势力的控制之下。
明朝洪武元年(年)九月,徐达指挥的西征大军,以常遇春为先锋,从河北翻越太行山进入山西南部,进取泽州(令出西晋城),元守将贺宗哲弃城逃遁,明军又进克潞州(今山西长治)。