朱元璋出身於濠州鍾離縣一個貧農家庭。至正四年四月 (公元 1344 年),淮北大旱,引發饑荒。朱元璋的父親、母親、兄長相繼離世,他於是入皇覺寺為僧。入寺五十日,因荒年寺租難收,寺主封倉遣散眾僧。朱元璋被迫離鄉別井,為行腳僧。
至正十二年 (公元 1352 年) 二月,湯和來信勸朱元璋投靠紅巾軍郭子興。
元順帝在位期間,朝政腐敗,天災不斷,韓山童、劉福通等人,以「彌勒佛降生,明王出世」為號召,率領群眾反元。因樹立紅旗,頭綁紅巾,故稱紅巾軍。郭子興是紅巾軍中濠州五帥之一。
朱元璋在郭子興麾下屢立戰功,子興將養女馬氏 (即後來的馬皇后) 許配給他,朱元璋搖身一變成為朱公子。當時,郭子興和孫德崖、趙均用不和,朱元璋為免捲入其中,主動要求返家鄉招募新兵。他不久領兵攻下滁州。
至正十四年 (公元 1354 年) 是關鍵的一年。馮國用與弟弟馮勝投靠朱元璋。馮氏兄弟喜愛讀書,精通兵法,朱元璋常詢問二人天下大計。
另外,李善長亦加入朱元璋陣營。善長有謀略,通曉法家學說。朱元璋曾從容地問:「四方戰鬥,何時定乎?」善長回答:「秦亂,漢高起布衣,豁達大度,知人善任,不嗜殺人,五載成帝業。今元綱既紊,天下土崩瓦解。公濠產,距沛不遠。山川王氣,公當受之。法其所為,天下不足定也。」深受朱元璋賞識及重用。
郭子興在濠州被孫德崖及趙均用迫走,前來滁州投靠朱元璋。張士誠據高郵,元朝丞相脫脫率大軍討伐,分兵攻六合,六合乃滁州屏障,朱元璋於是領兵援六合。脫脫和哈麻有嫌隙,哈麻挑撥奇皇后、太子愛猷識理達臘、順帝與脫脫的關係,並指使別人彈劾脫脫兄弟罪惡,勞師費財。脫脫卒之被免職,交出兵權。滁州轉危為安。朱元璋以滁州地小,進攻長江北岸的和州。
郭子興未幾病逝。郭子興次子郭天敘被立為都元帥,朱元璋與郭子興妻弟張天祐為副元帥,遙奉韓林兒的大宋龍鳳政權。常遇春、廖永安、俞通海先後歸附,令朱元璋部隊聲勢大振,著手渡江攻采石、太平路,並計劃取集慶 (今南京)。
元軍降將陳野先表示願協助紅巾軍攻集慶,郭天敘與張天祐感軍功不及朱元璋,決定聯合陳野先,搶先揮軍進攻。結果迎來陳野先叛變,郭、張二人被殺。朱元璋成為都元帥,統領郭子興舊部。至正十六年 (公元 1356 年),朱元璋領軍再攻集慶,取得成功,以此為根據地,改名應天府。
朱元璋攻佔應天後,徐達克常熟,「蘇常熟,天下足」,自此朱元璋不愁沒糧食。至正十八年 (公元 1358 年),取婺州,翌年陸續攻佔浙東餘下地區。朱升、宋濂、劉基在這時加入朱元璋陣營。
朱升提出「高築牆、廣積糧、緩稱王」,為朱元璋所採納。至正二十年 (公元 1360 年),陳友諒崛起,朱元璋即將面臨考驗。