朱元璋根据这一战略构想,将整个战略行动分为三个阶段加以实施。第一阶段,首先攻取山东,继而转攻河南,占据潼关;第二阶段,攻取河北及元朝大都,消灭元朝;第三阶段,主力由大都南下攻取山西,略定陕甘,完成北方之统一。北伐战争基本上是按照这一战略实施的。
元至正二十七年(1367年)十月二十一日,命丞相徐达为征虏大将军,平章常遇春为副将军,率军25万人由淮河入河南,北伐中原。 为减少北伐阻力,争取人民拥护,出兵之前,朱元璋特别告诫将士,师到之处,切勿杀掠。 并向北方人民发布檄文,提出“驱逐胡虏,恢复中华”的口号,对汉族各阶层人民产生了一定的号召力,所以北伐比较顺利。为了保障北伐,令留守江淮之部队加强戒备,以防元军袭击。
从至正二十七年十月明军主力由江淮北上,至洪武元年二月,仅用四个多月的时间就攻下山东(参见明攻山东之战)。 山东的攻克,使元廷失去了左臂,在战略上为北伐造成了更为有利的军事态势。三月,徐达挥军西向,分兵两路进攻河南(参见明攻河南之战)。一路自济宁溯黄河而上,进攻汴梁(今河南开封);一路由河南永城、归德(今河南商丘)攻许州(今河南许昌)。同时命征南将军邓愈率襄阳、安陆、景陵等处兵马北攻南阳,策应北征主力作战。明军所向披靡,在很短的时间里相继攻克汴梁、洛阳以及嵩(今河南嵩县)、陕(今河南陕县)、陈(今河南淮阳)、汝(今河南临汝)诸州,并不战而据有潼关,基本上完成了北伐第一阶段的战略任务。
元朝大都之屏蔽已撤,外援隔绝,陷入了明军的弧形包围圈中。五月,朱元璋亲抵汴梁,听取前线将领的军事情况汇报,并讨论了下一阶段的战略步骤。根据当时元廷已陷入孤立无援的军事形势,徐达提出由临清(今属山东)直捣大都的主张,朱元璋表示同意。 遂决定由征虏右副将军冯胜守汴梁,江西行省左丞何文辉守河南(今河南洛阳),镇国将军郭兴等人镇守潼关,徐达率大军直取大都。
闰七月初一日,明军主力自中滦(今河南封丘西南)渡黄河,沿御河(今卫河),经临清、长芦(今河北景县)、通州(今北京通县),向北挺进。一路势如破竹,锐不可当,直逼大都城下。元顺帝见大势已去,遂于二十八日夜三鼓携太子、后妃出建德门,由居庸关逃往上都开平(今内蒙古多伦西北)。 八月二日,徐达率军进占大都,从根本上结束了元朝的统治(参见明攻河北、大都之战)。
攻克大都之后,北方之山东、河南、河北等地尽入明军之手,尤其是元主北逃,使整个北伐战场发生了根本性变化,困据秦晋的元地主武装集团,完全陷入了群龙无首的境地。朱元璋得到徐达大军攻下大都的消息以后,不失时机地命其转入下一个战略阶段。