張子明報告陳友諒猛攻南昌,朱元璋聽了之後還真嚇了一大跳,趕忙問:“陳友諒兵勢如何?”張子明答:“陳友諒兵勢很盛,但攻城中戰死不少。現今江水轉涸,很快就不利於巨舟泊行。其師出已久,兵糧馬上也會成問題。如果有援兵至,裏外夾攻,必可破敵!”朱元璋沉吟片刻,對張子明說:“你回去告訴文正,讓他再堅守一個月,我將親自率兵前往破敵!”張子明得命而還。行至湖口,被陳友諒巡邏兵抓住。陳友諒聽說抓住了奸細趕忙親自審問,將張子明帶到跟前說:“如能為我誘降,不僅不殺你,高官厚爵任你選。”張子明麵上做出一副猶豫不絕的表情思考了好一會兒,這才假裝答應。轉天,漢軍押張子明至南昌城下,守城將士皆憑城往下觀望。張子明站定,仰頭高呼道:“主上令諸公堅守,大軍馬上就來!”朱文正等人聞言,守誌益堅。狂怒之下,陳友諒又在陣前剮殺張子明。朱元璋調兵遣將,他立命正圍攻廬州的徐達、常遇春還兵,共集水陸兵二十萬,與自己一起共征南昌。進至湖口後,朱元璋先遣一萬軍屯於涇江口,又派一軍屯於南湖嘴,準備一戰全殲這個宿敵。
至此,陳友諒整整包圍南昌八十五天,雖殺掉朱元璋十四員大將,仍未能克堅城。聽聞朱元璋親自來戰,他馬上解圍,掉頭殺出鄱陽湖,前來迎戰。朱元璋胸有成算,他率水軍自鬆門入鄱陽湖,揚帆而來,與陳友諒軍在康郎山附近相遇。當時,乍從水軍的陣容看上去,漢軍占有明顯優勢,其巨艦高大威猛,鐵皮閃爍黑光,虎虎逼人。朱元璋仔細觀察後,對諸將說:“哼,陳友諒非是懂兵之人,彼巨舟首尾相聯,不利進退,可破也!”於是,朱元璋命自己這一方舟師列為二十隊,其間以小船遍載火器弓弩,告誡諸將說:“接近敵船後,先發火器,再發弓弩,舟船相接後,則以短兵擊之!”由此,鄱陽湖大戰拉開序幕。徐達、常遇春、廖永忠等人先發,驅船直逼敵人巨艦薄戰。徐達表現最出色,他身先士卒,擊敗漢軍前鋒,殺敵一千五百人,並俘獲漢軍巨艦一艘,使得軍聲大震。首戰告捷,對於朱元璋一方軍士的心理來講起了真正的鼓舞作用。大將俞通海乘風發射火炮,又一舉焚毀漢軍巨艦二十艘,漢兵被殺被溺一萬多,不少人身上著火在水中撲騰。當然,漢軍並不示弱,以巨舟逼近,箭弩齊發,朱元璋手下兩位元帥當即戰死。而且,漢兵船高,先施火攻,居高臨下扔火把,連徐達的指揮船也被燒著。徐達臨危不懼,邊撲火邊指揮,奮戰得免。