元顺帝听说通州失陷,心急火燎,赶忙在清宁殿召集三宫后妃,以及太子爱猷识理达腊准备北行。宦官伯颜不花进谏道:“陛下留在京都,臣等愿募集百姓出城迎战。”顺帝说:“孛罗铁木儿、扩廓铁木儿屡次骚扰,京中守备早已空虚。还怎么守?”伯颜不花痛哭流涕:“祖宗的天下,陛下应当死守,怎么能轻易放弃呢?”顺帝怒道:“难道要我像宋徽宗、宋钦宗那样?朕意已决,不要再说了!”说完,拂袖回宫。到了黄昏,顺帝召淮王铁木儿不花和丞相庆童入内,命淮王监国,庆童为辅佐。自己则在半夜的时候,打开建德门,带着后妃、太子往北逃去。徐达率领明军,从齐化门攻入,擒获淮王铁木儿不花、左丞相庆童、平章迭儿必失朴赛不花等人。明军劝他们归降,全都不从,于是一律被处斩。徐达随即查封府库、书籍、宝物,又派兵守住故宫的殿门。所有的宫女、妃嫔还让原来的太监照顾着,并号令士兵,秋毫无犯。让百姓安居乐业,集市照常开张,然后又派人到应天报捷。徐达一面命薛显、傅友德等人分兵把守关卡;一面命华云龙修缮城池,专等太祖巡幸。
太祖得到捷报,下诏褒奖北征军,定应天为南京,开封为北京,并制定了官制。起先,明朝的官制模仿元代,设中书省总管天下吏治;置大都督府统领天下兵政;设御史台整肃朝廷纲纪,接着改立六部,定下吏部、户部、礼部、兵部、刑部、工部等名目。后来胡惟庸伏法,朝廷就罢去了中书省,废掉了丞相等官,用尚书管理天下大事,侍郎为副手。将大都督府分为五军都督府,由兵部管辖,权力远不如从前,并增设都察院管辖台官。
太祖命徐达、常遇春出师攻取山西,副将军冯胜、偏将军汤和、平章杨璟随军调遣。徐达受命西征,分道并进。常遇春攻下保定、中山、真定;冯胜、汤和、杨璟等人攻下怀庆,进逼太原。元将扩廓铁木儿的部下韩札儿来攻打泽州,与杨璟、张彬等人在韩家店相遇。杨璟、张彬等人藐视元军,以为韩札儿没什么能力,一鼓便可以击退。哪知韩札儿骁悍得很,手下又都身经百战。双方拼杀了很久,杨璟、张彬非但没有击退元军,反倒被他们冲散了阵势,败下阵来。大将军徐达得知消息后,立即调都督副使孙兴祖、佥事华云龙去防守北平,自己则带着大军直逼太原。途中听说元顺帝赦免了扩廓的罪状,让他官复原职,带兵攻打北平。徐达当即召集诸将前来商议。诸将都说应该回去支援,徐达却说:“北平重地有孙都督等人把守,一定能抵抗得住。此次扩廓倾巢出动,太原必定空虚。我军不如乘他不备,直逼太原,一举捣毁他的巢穴。到了那个时候,扩廓进退失利,定被我们擒住。”商议好之后,明军继续前进。扩廓果然派兵来救太原,在城西扎营,大有排山倒海的架势。郭英登高远望,回去和常遇春说:“敌兵虽多,却很不整齐;军营虽大,却很不谨慎。我军只要趁夜偷袭,一定可以取胜。”常遇春去和徐达说,徐达也点头同意。正在筹划的时候,忽然从扩廓的军营里送来一封信。徐达看完之后,写好回信,派人送去。
当晚天气阴暗,薄云笼罩。郭英带着三百名精骑,偷偷溜到敌营附近。一声炮响之后,士兵们四面纵火,顿时火光冲天,烈焰滚滚。常遇春带领大队人马跟了过来。敌营里面,也有一队人马呐喊着冲出来。两边相见,却并不厮杀,互通暗号后,这队人马引着明军,扑向主营。当时,扩廓铁木儿刚刚点上蜡烛,正准备看书,忽听到营外杀声连天,料到有什么变化,急忙起身。慌乱间,连靴子都没有穿好,竟光着一只脚,跑出帐外,跨上一匹劣马,扩廓举鞭乱抽,向北逃去。其身边只有十八名亲信跟随。常遇春等人杀入营帐,营中已经乱作一团。常遇春大喊:“降者免死!”士兵们全都丢盔弃甲,跪了下来。这次战役共缴获四万士兵,四万匹马。
原来扩廓有一个叫豁鼻马的部下,看到元朝将要灭亡,就有了归降的意思。后来听说徐达礼贤下士,不杀降人。这豁鼻马便背着扩廓,暗中给徐达写信,表示愿意做内应。徐达马上回信相约,互通暗号。所以这次交战才这么容易得手。扩廓逃走后,太原很快被明军攻下。徐达又乘势收复了大同、平阳、榆次、平遥、介休。山西平定。
太祖接到捷报,心中的愉快自然不消细说。转眼间就是洪武二年。这年,太祖命人在江宁西北鸡笼山下,建一座功臣庙。
徐达等人平定山西之后,又奉命进军关陕。关中已经推选李思齐为统帅,驻兵凤翔。大军出发前,太祖先派人去招降。李思齐有投降的意思,可他的养子赵琦却不愿投降,并劝李思齐西入吐蕃。就在李思齐迟疑不决的时候,大将军徐达已经统兵入关,直捣奉元。元守将哈麻图逃走时被民兵杀死。那时关中大闹饥荒,太祖下令,每户分给二三石米粮,顿时民心归附。
常遇春进攻凤翔。李思齐听从赵琦的话逃往临洮。谁知赵琦竟然半路起了歹心,抢了珠宝逃走了。李思齐长叹几声,只好投降。徐达命人将他送到南京。太祖以礼相待,任命他为江西行省左丞。接着太祖传令,命常遇春回来防守北平,其余将士都跟着大将军攻打庆阳,并说张良弼兄弟狡猾多端,即使前来投降,也要小心处置,千万不要中计!
徐达领命之后,攻下平凉。张良弼非常惶恐,让弟弟张良臣防守庆阳,自己逃回宁夏。途中遇到扩廓的兵马,被扩廓活捉。张良臣听说后,就投降了明军。徐达派薛显入城,张良臣前来迎接,匍伏在马前,非常恭顺。薛显招抚完百姓之后,就在城外屯下兵马。张良臣骁勇善战,他本来想诱薛显入城,等到半夜,再关上城门劫杀薛显。谁知薛显竟然屯兵城外,使得张良臣的计谋没能得逞。张良臣只得趁夜打开城门,领兵杀出。薛显带领五千骑兵拼命抵抗,身中数箭,负伤逃到徐达的大营。检阅兵士,竟伤亡过半。徐达对诸将说:“皇上明见,今天的事情早就被他猜到。张良臣困守孤城,终究是要败亡,我们就一起去灭了他!”诸将齐声领命。于是各路大军将庆阳团团围住。张良臣急忙派人到扩廓那里求援。扩廓那时还在宁夏,就派部下韩札儿攻陷原州,为庆阳声援。徐达派冯胜到驿马关抵御韩札儿。驿马关距庆阳三十里。冯胜赶到之后,听说韩札儿又攻陷了泾州,急忙星夜前进。途中遇到韩札儿的军队,冯胜将他们击败。那时常遇春早已回到北平。听到消息后,就带着部下李文忠,驱兵北进,到达锦州,击败元将江文清,进入全宁;接着又打败元丞相也速,进攻大兴州。一路马不停蹄,直达开平。元顺帝从燕京出走后,在开平驻扎。听说明军赶到,又仓皇逃走。常遇春追了几十里,招降将士几万人,缴获一万辆战车、三千匹马、五万头牛。于是蓟北平定。
常遇春还准备到庆阳攻打张良臣。谁知到了柳河州,竟然身患重病,霎时间全身疼痛,从前医好的箭伤,也好端端地裂开了。