在基本平定江南地区后,朱元璋发布《谕中原檄》,任命徐达为征虏大将军、常遇春为副将军,发兵二十五万,高举“驱逐胡虏,恢复中华,立纲陈纪,救济斯民”的旗号,北上讨伐元廷,根据《明太祖实录》记载,战前朱元璋就定下了“先取山东,撤其屏蔽;旋师河南,断其羽翼,拔潼关而守之,据其户槛……然后进兵元都”的渐进策略,这一战略方针,强调不急于强攻城高墙厚、兵多粮足的元大都,先重点剪除山东、河南等地的元廷外围势力,占领并封锁潼关,阻止陕西的元军由此进逼中原。
徐达率军于十月二十一日出发,十一月初进抵下邳、徐州一带,接着徐达按照战前商定的战略方针,亲自率领一支军队仅用了一个多月时间就攻占了山东大部分地区,率军进驻济南,徐达乘胜挥师西进,仅用了不到一个月时间又攻下了河南部分地区,气势如虹不可匹敌,北伐大军的节节胜利,也促使朱元璋提前称帝建国,大明正式宣告建立那一天是正月初四距离北伐大军出征的头年十月二十一那一天,才仅仅过去了七十三天,大明王朝建立后,北伐大军更加士气高昂,在常遇春率军攻取洛阳之战中,明军在洛水之北的塔儿湾与元军遭遇,此战中,常遇春身兼士卒,单枪匹马突入敌阵,左突右杀勇猛异常,常遇春麾下将士见状也紧跟着冲入敌阵,很快就击溃五万元军,取得了塔儿湾大捷,这一战,明军顺利占领了洛阳和潼关,封锁了陕甘一带的元军经由潼关进入中原地区的战略要道,之后,经过三个月的休整和准备,徐达、常遇春率北伐大军沿运河北上,正式发动了攻打元大都的战役。
当明军接连攻下德州、通州后,元顺帝终于看清了现实,认识到自己在中原的统治终究已经大势已去,于是果断率领百官和一众残兵败将,携后妃和一众皇亲贵胄,向北逃窜到了元上都开平城,徐达几乎是兵不血刃就拿下了已经沦为一座空城的元大都,并将其改名为北平府,又经过简单休整后,徐达继续向西推进,想要一举收复陕西、陕甘等地,在平定山西的过程中,由于山西四面皆山多有险障可以据守的原因,作为进攻一方的明军接连遭遇了数场苦战,虽然最终取胜并占领了整个山西地区,但是已经出现了明显的疲态,然而,由于北伐以来一路征战太过顺利,明军将士也包括主帅徐达乃至于朱元璋都忽略了这一点。
徐达继续率众向西挺近,进攻陕西,初战告捷后,已经连续征战一年半,疲惫不堪的明军终于有些后继乏力,与陕西残余元军陷入了胶着战,元顺帝见此情况,派兵南下准备反攻北平府,徐达自己坚守陕西,命令常遇春、李文忠率八万兵马救援北平府,常遇春率军刚到北平附近,之前被他打怕了的元军马上望风而逃,常遇春为了以绝后患,不顾千里奔袭的疲惫,果断率军追击,不但击溃了这支元军,还千里奇袭元上都开平城,迫使元顺帝再度弃城北蹿,夺下开平城大获全胜后,常遇春这才心满意足的班师南归,然而就在常云春大军行至柳河川时,两次千里奔袭,接连苦战数十天未曾好好休息过一天的一代猛将常遇春,终究因为疲惫过度,猝死军中,常遇春的去世也让朱元璋意识到北伐大军实在已经疲惫不堪,难以继续征战下去,于是下诏让徐达安排好北方防务后,班师回朝,明军的首次北伐可以说非常完美,只是常遇春的猝死军中充满了遗憾与悲情。