第二個因素是他取得了地主階級知識分子的支持。他起兵之後不久,就有一些知識分子投奔他,像李善長、馮國用、劉基、宋濂、章溢、葉琛(chēn)等。這些人都是浙江、安徽地區的地主階級知識分子,在地方上有些威望,而且都有武裝力量。這些知識分子替朱元璋出主意,勸他搞生產、搞屯田。在安徽時,朱升勸他“高築牆、廣積糧、緩稱王”。這就是要他先把根據地搞好,在後方解決糧食問題,一開始不要把目標搞的太大。李善長、劉基勸他不要亂殺人,不要危害老百姓,要加強軍隊紀律,要鞏固占領的城市;並經常把曆史上成功的經驗和失敗的教訓告訴他。朱元璋本人也很用功地學習曆史,他在進行軍事鬥爭或政治安排時,總是要征求這些人的意見,研究曆史上的經驗教訓。
這裏有一個問題,朱元璋出身於紅軍,他反對地主,而地主階級為什麼要支持他呢?這不是一個很大的矛盾嗎?要了解這個問題,必須從當時的具體曆史情況來看。朱元璋本人要打擊地主,因為他受過地主階級的壓迫。可是在進行軍事鬥爭的過程中,他感到光像過去那樣打擊地主、消滅地主,不僅很難取得地主階級的支持,而且會遭到地主階級的頑強抵抗。所以,在他還沒有成為一個軍事統帥的時候,他就改變了紅軍的傳統,開始和地主階級合作,取得他們的支持。這是問題的一方麵。另方麵,地主階級怎麼願意支持他呢?前麵不是說過,紅軍在北上的戰爭中所遇到的最大阻力不是元朝軍隊,而是地主階級的武裝嗎?原因很簡單,就是安徽、浙江地區的地主階級,他們看到元朝政府已經不能維持下去了,他們不能再依賴元朝政府的保護,而他們自己的武裝力量又無論如何也抗拒不了朱元璋的進攻;更重要的是他們理解到朱元璋歡迎他們,采取跟他們合作的方針。他們與其堅決反抗朱元璋而被朱元璋消滅,還不如依靠朱元璋,得到朱元璋的保護,以維護自己的階級利益。所以,當朱元璋派人去請劉基的時候,劉基開始拒絕,可是經過一番考慮之後,最後終於接受了。
朱元璋的軍隊加入了這樣一批力量之後,它的性質逐漸改變了。所以在他以後去打張士誠時所發布的一個宣言中,不但不再承認他自己是紅軍,反而罵紅軍,攻擊紅軍,把紅軍所講的一些道理稱為妖言。盡管這時他在形式上還是接受韓林兒的命令,用韓林兒的年號,他的官爵也是韓林兒封的,但實質上他已經叛變紅軍。到了一三六八年,他已把陳友諒、張士誠消滅,派大將徐達進攻北京,這時又發布了1ff8一個宣言。在這個宣言中像紅軍所提出的“貧極江南,富誇塞北”的口號都沒有了。主要提些什麼問題呢?夷夏問題。就是說少數民族不能當中國的統治者,隻能以夏治夷,不能以夷治夏。他要建立和恢複漢族的統治。在這樣的情況下,戰爭的性質改變了,不再是紅軍原來的階級鬥爭的性質,而是一個漢族與蒙古族的民族戰爭。
一三六八年,朱元璋的軍隊很順利地打下了北京。元順帝跑到蒙古,曆史上稱為北元。元順帝雖然放棄了北京而回到蒙古,可是他的軍事力量並沒有受到太大的損失,還仍然保持著比較強大的軍事力量和完整的政治機構。他並不認為自己統治的王朝已經結束了,他經常派兵來打北京,要收複失地。所以在明朝初年明朝和北元還有幾次很激烈的戰爭。到了洪武八年,北元的統帥擴廓帖木兒死了,蒙古對明朝的威脅才減輕了一些,但仍然沒有結束。這時北元和高麗還保持著密切的關係,高麗的國王還照樣是北元的女婿(每一個高麗國王都要娶蒙古貴族女子作妻子),在政治上仍然依附於北元。這種關係一直維持到洪武二十五年。這一年,高麗內部發生鬥爭,大將李成桂為了取王朝而代之,他依靠明朝的支持,在國內發動政變,推翻了舊的王朝,建立了一個新的朝代。從此,高麗臣服於明朝。同時,李成桂在求得明太祖的同意之後,把國名高麗改為朝鮮。此後一直叫朝鮮,不再稱高麗了。朝鮮國內的政治變革,反映了明朝和北元的鬥爭關係和勢力的消長。