公元1367年,朱元璋滅掉了陳友諒、張士誠,招降了方國珍之後,開始正式籌劃北伐元朝。為此,朱元璋還特地從南京來到開封,親自部署這場“滅元之戰”。值得一提的是,在軍事會議上,常遇春吹牛道:“我們以百戰之師,攻打元朝殘喘之卒,定然能長驅直入,不日必將滅元。”
朱元璋雖然出身低微,但他的軍事眼光遠遠在常遇春之上,朱元璋説:“元朝建都百年,哪有這麼容易,我們需要徐徐圖之。”最終,朱元璋決定先取山東,再去河南,最後攻取元朝大都(北京)。謀定而後動,朱元璋封徐達為徵虜大將軍,常遇春為副將軍,二人領兵25萬,帶着馮勝、薛顯、傅友德等一眾猛將開啓了明軍北伐之旅。
第二年,朱元璋在南京稱帝。這一年,徐達和常遇春二人從山東打到河南,再打到河北,到七月中旬,徐達領兵攻下通州,通州已失,大都門户大開,元朝最後一位皇帝元順帝帶着太子和后妃倉皇而逃,由居庸關逃到了開平。
元順帝逃到開平之後,朱元璋沒有讓徐達和常遇春回南京,而是命華雲龍、孫興祖留守北京,讓徐達、常遇春轉頭向西,以收復山西、陝西、甘肅等地。當時秦晉之地是元朝在中原地區的重要防禦力量,包括王保保、李思齊等人手握重兵,以抵抗徐達等人。
徐達和常遇春在西北征戰近一年,在二人的鐵血攻擊下,李思齊投降,王保保兵敗,僅帶着18人逃往草原。
在平定西北之後,徐達、常遇春兵分兩路進入草原,目標正是開平城。就是這場戰爭,徐達故意放走了元順帝。
元朝有三大首都,分別是大都、中都、上都。其中,開平城便是元朝的上都,位於現在的內蒙古自治區錫林郭勒盟區域內,是忽必烈在草原上建立的第二座都城。由於這座城市建在草原之上,四周無險可守,對於軍事家徐達來説,若蒙古沒有強悍的騎兵拱衞,攻打這座城市並沒有太大難度。但出人意料的是,徐達下了一個奇怪的命令:三面圍城,在北面留一個口子。
對於徐達的這個命令,作為副將的常遇春非常不理解,常遇春找到徐達,大發雷霆,不認可這個部署,因為如果單放開一面,元順帝必然會逃跑,自己便失去了立大功的機會。
然而,徐達作為主帥,沒有理會常遇春的抗議。
洪武二年六月十三日凌晨,徐達一聲令下,明朝大軍如潮水一般從三面湧來,城內的蒙古士兵再沒有100年前成吉思汗時期的兇悍,望着徐達的戰旗,他們在瑟瑟發抖之餘,沒有過多的抵抗,而是倉皇從北面逃跑。當然,跟着他們逃跑的還有元順帝。
一年前,徐達、常遇春攻打大都,元順帝在開戰前順利逃跑。一年後,二人攻打開平,元順帝在開戰時又順利撤離。又過了半年,元順帝在應昌駕崩,直到他去世,他或許都認為自己運氣極好,讓自己有幸死在草原之上,而沒有被徐達活捉。實際上,他不知道,這是徐達故意放他離去。因為在這場角力的背後,有更深層次的東西,徐達領會到了,而常遇春沒有領會。
在打掃戰場時,常遇春得知元順帝已經逃走,很生氣地找徐達理論。徐達解釋道:
是雖一狄,然嘗久帝天下。吾主上又何加焉?將裂地而封之乎,抑遂甘心也?既皆不可,則縱之固便。(馮夢龍《智慧全集》)
徐達的意思是:元順帝雖然是外族之人,但畢竟做了很長時間的天下之主。如果活捉回去,你讓陛下(朱元璋)怎麼處理他呢?是把他封為王侯,還是殺了他為百姓出氣呢?我認為,以陛下的性格,這兩者都不會做,所以,我故意放元順帝逃跑,這樣大家都不為難。
徐達這般解釋,常遇春哪裏聽得懂,他嚷嚷着要向朱元璋告狀。當年,常遇春在半路上病逝,但他關於這場戰爭的奏報早就呈到了朱元璋的御桌上。朱元璋得知徐達的處理結果後,暗暗點頭。等徐達回京,朱元璋什麼都沒説。《智慧全集》雲:
及歸報,上亦不罪。
朱元璋沒有怪罪徐達,説明,在他的內心深處,認可了徐達的做法。
元朝乃明朝的宿敵,徐達為何敢故意放走元朝末代皇帝呢?這是因為徐達琢磨透了朱元璋的心思。馮夢龍在《智囊全集》中解釋道:
何以知之?於遙封順帝、赦陳理為歸命侯而不誅知之。
有兩件可以證明徐達揣摩透了朱元璋的心思:
第一,元朝末代皇帝駕崩後,朱元璋遙尊他為“順帝”,很坦然地承認了他帝王的身份。
第二,朱元璋滅掉陳友諒後,俘虜了陳友諒之子陳理。朱元璋最初對陳理的處置是:不殺他,封他為歸命侯。但是,幾年後,朱元璋還是覺得這樣處理陳理不妥當,便把陳理送到朝鮮安置了。
因此,徐達認為若活捉元順帝,會讓朱元璋難做,這種思維是有道理的,只是常遇春沒有看透而已。一代名將徐達,雖然出身草莽,但心中自有丘壑。他不但打仗有一套,在揣摩人心方面也很有功夫。