元末农民起义势力蜂起,其中较强的是朱元璋和陈友谅。在至正二十年(1360年)五月,陈友谅称帝,国号为汉。朱元璋在应天(今南京)定都,筹备要扫清其他势力,一统天下。
由于陈友谅挟持皇帝徐寿辉,实力增加,兵强粮足,拥有战舰数百艘之多,其中有可日行千里的“混江龙”“塞断江”“撞倒山”等大舰。陈友谅抓紧训练兵马,并与另一支起义军领袖张士诚联系,打算联手攻打朱元璋。
陈友谅与张士诚联手攻打朱元璋的消息传到应天城里,老百姓议论纷纷,有的正准备逃走。朱元璋知道这个情况后,立即传令,如果谁提出投降或者逃跑,就杀谁。城中人心一时稍见安定。朱元璋急忙召来刘基(伯温)商议对策,最后决定,诱敌深入,各个击破。陈友谅认为自己兵强马壮,有恃无恐,果然中了朱元璋的计,陷入困境。
就在朱元璋与陈友谅拉开战幕时,小明王派人来求援,说自己遭受元军包围。朱元璋认为支持小明王可以赢得民心,并且可利用小明王所在地安丰保住应天。为此,朱元璋亲自率领大军前往安丰。
1363年农历四月,陈友谅乘朱军主力救援安丰,江南空虚之机,以号称60万的水陆大军于十一日围攻洪都,占领吉安、临江、无为州。洪都地处赣北平原,位于赣江下游,由赣江向北经鄱阳湖与长江相连,军事地位甚为重要。陈军登陆后,用各种攻城器械从四面八方向洪都城起猛攻。守城朱军浴血奋战,死守洪都,坚持月余。
此时,朱元璋已回到应天,但主力仍由徐达率领正在围攻庐州。当朱元璋获悉陈友谅全军出动围攻洪都而未直取应天,并悉江水日涸,不利陈军巨舰行动,以及陈军缺粮、士卒多死等消息后,认为这正是消灭陈友谅的大好时机。
朱元璋遂一面命洪都守军再坚守一月,疲惫陈军,争取时间;一面命徐达撤庐州之围,回师应天。七月初六,朱元璋亲率水军20万,往救洪都。十六日进抵湖口。先派兵守住泾江口(今安徽宿松南),另派一军屯于南湖嘴(今江西湖口西北),切断陈友谅归路;又派兵扼守武阳渡(今江西南昌县东),以防陈军逃跑;朱元璋则亲率水师由松门(今江西都昌南)进入鄱阳湖,形成关门打狗之势。陈友谅听说朱元璋大军来援,即撤洪都之围,东出鄱阳湖迎战。一场规模空前、激烈异常的生死大决战,就此在鄱阳湖面展开。