至正二十三年二月,就是1363年,朱元璋決定親征,解救為張士誠的部將呂珍包圍的安豐,就是後來的安徽壽縣南。從整局出發,劉基意識到此舉與原定先取陳友諒又破張士誠的方針相違,所以力勸朱元璋不宜出兵。他說:"萬一陳友諒乘虛來攻,便會進退無路。再者,如救得小明王韓林兒出來,怎樣安置他呢?是繼續讓他當明王,還是把他禁閉起來?或是把他殺掉?要是關起來或者殺掉,那如今救他幹什麽?還不如借張士誠之手殺了他。要是讓他繼續當明王,豈不是自討沒趣,平白找個頂頭上司來管製自己?"
朱元璋則認為若安豐失守,應天也會失去屏障,救安豐即是保應天。所以還是親自統兵去了。不出劉基所料,當朱元璋出兵支援安豐時,陳友諒果然乘虛進犯,調動了數百艘戰艦,五六十萬軍隊,傾巢出動圍困洪都,就是後來的江西南昌市,很快攻下吉安、臨江、無為州等地。
南昌被圍80餘日,激戰數十晝夜,情勢非常危急。朱元璋聞之,方知劉基的話是正確的,自責說:"不聽先生之言,才有今日之失。"
劉基寬慰他說:"現在醒悟還來得及。"
朱元璋立即親率20萬大軍救援,命劉基留守應天。
陳友諒聽說朱元璋來援,怕腹背受敵,隨即撤圍,在部陽湖擺下陣勢準備迎戰。雙方大戰於鄱陽湖之上,初時,朱元璋屢戰屢敗,幾處險境。無奈,隻好又命徐達去應天掉換劉基。
劉基星夜趕來,便與朱元璋研究破敵戰術。兩人都主張用火攻,但是朱元璋生怕風向不定,船多難以全部燒盡,弄不好還有可能燒及自身。據劉基觀察天象,黃昏時分將有東北風起。他們隨即準備了七艘小船,上載草人迷惑敵方,並把蘸滿油漬的蘆葦、硫磺火藥等物放置船上,迅速開進湖中,待接近敵船,即拋出鐵鉤搭住敵船,乘勢放起火來。刹那間烈焰騰空,大船多被燃著。
戰鬥進行得十分激烈,一天幾十次接火,喊殺聲、濤聲、燃燒聲混在一起,煞是雄壯。激戰中雙方都有很多損傷,隻是陳友諒始料不及,損失更大。
有一次,朱元璋正在指揮船上發號施令,忽然,侍坐在身旁的劉基,一躍而起,大呼道:"有危險即將來臨,請主公急速速換乘別船,朱元璋也驚起回顧,隻見劉基雙手揮舞,堅持說:"速速換船!"
朱元璋不及多想,就被劉基和幾個貼身衛士拉著換乘另一隻船。人坐都沒有坐穩,隻聽"轟隆"一聲,先前那艘指揮船就被陳友諒的大炮擊中,頓時粉碎,沉入湖中。此時朱元璋才緩過神來,明白了是怎麽回事,不由得稱讚劉基的神機妙算。
原來,劉基見朱元璋一心求勝,顧不得指揮船的隱蔽,穿行兵陣之中,然而這一切都被陳友諒的軍隊發現。他想陳友諒必定會集中所有的炮火首先把朱元璋的指揮船擊沉,恰好這時天象異常,出現所謂的"難星",劉基便趁機催著朱元璋換船,躲過了這場事關勝負成敗的禍事。
這邊的陳友諒見朱元璋的坐船已被擊沉,以為朱元璋必死無疑。全軍歡聲一片,舉杯慶功。正在狂喜中,又看到朱元接指揮戰船進攻,不免大驚失色,以為有神仙庇佑,頓時,陳友諒陣勢大亂。朱元璋軍隊的戰船乘機旋繞漢軍巨船,時出時沒,勢如遊龍,弄得陳友諒手足不措。朱元璋的將士見狀,一時勇氣百倍,呼聲驚天動地。
同時,湖麵上波濤大起,陰雲密布,給朱軍進攻創造了良好條件。朱元璋軍雖是小船,但移動自如,正好采用火攻,陳友諒的巨船卻處處挨打,有的被擊沉,有的燃起了熊熊大火。
雙方在鄱陽湖中激烈地戰鬥了三天,仍未決出勝負。後來,劉基又建議朱元璋將主力軍隊移往湖口,扼住敵軍通路,用關門打狗的辦法,以致陳軍補充給養的後路全被切斷。給養斷絕,將士疲乏,內爭不已,陳軍敗局已定,大部分兵士被俘和投降。陳友諒也在突圍觀望的時候被流矢射中身亡。朱元璋的軍隊,在付出了很大傷亡的代價,幾經險境,終於徹底打敗了這一強敵。
回到應天,朱元璋對自己的這次決策曾經表示悔悟,他向劉基說:"我實在不當有安豐之行!如果陳友諒乘虛直搗應天,那我便進無所成,退無所守,大事去矣!幸而他不攻應天而圍南昌,南昌又堅守了三個月,致使我有足夠時間集中兵力。陳友諒出此下策,不亡何待。"
在平定陳友諒的幾個主要戰役中,劉基胸有成竹,運籌帷幄,每奏奇效,特別是鄱陽湖一戰,奠定了平漢興明的霸業。劉基在鄱陽湖中的戰略戰術思想,很值得人們研究借鑒。