明—汉之战,1360—1363年
明—汉战争的决战高潮从1360年延续到1363年,它打破了长江流域的均势。朱元璋出乎意料的胜利使他能吞并陈友谅的领土,并收编了他余下的人马。这就使得明军有了数量上的优势以制胜吴,并在灭吴之后使明军能在1368年迅速地向四面八方扩张。除此之外,朱元璋于1363年在鄱阳湖的决定性胜利使他有了他需要的威望和崇高形象来克服他自己政权内部的离心倾向,而这种倾向是当时全中国军人性格的特点。因此,朱元璋必须率领他的军队在一场主要出于军事考虑的斗争中取得胜利(但是这场斗争也解决了红巾军两个继承人之间的争端),从而使拥有明确制度和政策的明帝国得以建立。他的主要对手陈友谅也受到种种类似的约束。
自从1351年的叛乱爆发以后,军事争夺的条件大大起了变化。从社会上和组织上来说,1360年及其以后各地的军队仍然是前此时期被迫离乡背井的农民,但是在作战上他们都有了长足的进步。到了1360年,城垣已经普遍修复,要攻克一座城池只有靠长期的封锁或伤亡很大的攻势才行。城池——特别是那些州府城池或建制更高的城池——仍然是主要的军事目标。每一座城池都统治着它四周的乡村,在这个时期,仅仅依托农村的部队必然被驱来赶去,弄得疲惫不堪乃至毁灭,除非他们能夺取一座城市为根据地。然而,不管是围城还是野战,正在运用大部队进行,而他们的运输和供应的最方便的方式莫如利用长江纵横交错的水路上的船只。渔民和其他浮家泛宅的社团在起义爆发时起过很重要的作用。到了1360年,真正的战斗舰队发展起来了。它们不仅运送军队去围城,也彼此在水上打仗,不让敌人取得水上通道。
1360年陈友谅袭击南京
1360年陈友谅把他个人的内陆水军拿来做赌本(这水军是他个人权力所系的命根子),企图拿下南京,一举摧毁朱元璋的势力。根据史料中的暗示,陈友谅是鲁莽地进行攻击的,但是值得注意的是,陈友谅在他的同时代人中是最能认识内陆水军的潜力的;迅速地移动部队,搞战略性的突然袭击,是使用他的强大得多的内河舰队的最好的办法。对于陈友谅来说不幸的是,他在南京中了埋伏,使他损失了很多士兵和大部分船只。朱元璋通过夺取陈友谅的一支完整的舰队而扩大了自己的水师,这就使得他在此后的两年中主宰着长江中游的水域。其经过是一个很有意思的故事。
陈友谅在害死了赵普胜以后,便马上做好准备要向东扩张,侵入安徽南部的明政权的领土。明军的间谍使南京对陈友谅的动向了如指掌。据猜测,这些谍报分子就是来自那些不满于赵普胜被杀的巢湖分遣舰队中的人,否则就不好解释为什么明军的谍报在1360年总是那么详尽无遗,而在后来又是那么的不灵。当明军在常遇春带领下攻克池州的时候(1359年11月),陈友谅计划来一次突袭以收复它。朱元璋得知这消息后派徐达前往池州,并命常遇春放弃他在杭州前面的炫耀武力的行动(这次行动已持续三个月而毫无结果)去与徐达会合。这两位明军将领伏击了入侵者,并捉了3000名俘虏,常遇春杀了他们的大多数人,并派回少数几个人去向陈友谅报告军情。
这个报告激怒了陈友谅,促使他要用手头的部队去攻打明军。它拥有10万人马,是一支很大的部队,但没有超过明的南京军队,而且它只代表陈友谅领土上整个军事潜力的一部分。陈友谅的舰队向下游行驶,于1360年6月11日抵达太平。指挥3000名守军的明军将领花云拒不投降。陈友谅的士兵面对城垣进攻了三天,都无成效。于是陈友谅想用他舰队中的更大船只来突击面江的城墙:即叫他的士兵从高高的船尾去攀登城墙。只要攀上了城墙,他们就能轻易地制服弱小的明方守军。花云被俘,但拒绝降顺,壮烈牺牲。陈友谅得意于他的胜利,认为这种战法可通用于整个长江水域。他继续往下游航行,于6月16日命令他的舰队停泊在采石码头,这里是明军在1355年过江的地方。他在这里把天完的傀儡皇帝徐寿辉打死,自己称帝,建立汉王朝。登极的仪式是在一个特地为此征用的庙宇的庭院中举行的,但被一场夏季暴雨所打断。新皇帝派了一个使节去见张士诚,请他从背后夹击南京;陈友谅则准备自己率舰开往南京。
明军领袖获悉太平已于6月18日失陷。他们的士兵固然和汉军的士兵一样多,但他们的水军只有人家的十分之一,从1355年以来他们的大多数扩张都在陆上进行。汉军能够在江上随意航行,攻打像太平那样的沿江城市,其中包括扬州(运河上的江北城市)、镇江和江阴(靠近吴的边界)。如果明军在陆地上追击他们,明军就要冒消耗力量和遭受汉军攻击的危险。朱元璋的将领们提出了孤注一掷的建议:有人建议陆上进军太平,另有人建议放弃南京,坚守城东的紫金山。
朱元璋否决了这些建议而实施李善长和康茂才所拟的一个计划,其中包括把陈友谅诱上岸来,引他进入预定地点,设伏打他。康茂才在1356年投降朱元璋以前曾在陈友谅军中服过役。他有一个做两面间谍的仆人:此人一面向陈友谅报告军情,一面又把汉军的动态带回到明营。很显然,他只忠于康茂才。康茂才利用他带信给陈友谅说他将倒戈,并将把从长江到南京西城墙的三叉江上的木制江东桥挪开,让陈友谅的水军经过秦淮河直抵南京城墙之下。这仆人带回了陈友谅的口头允诺,据史料说,朱元璋为此命令李善长连夜重造了一座石桥。这样,朱元璋就有意地破坏了他自己的计划,但是他已经算计出了陈友谅在康茂才如果不倒戈时的应变计划,因而这就使得有可能进行一次更具决定意义的伏击。
朱元璋预先在大胜关埋伏了杨靖,在江东桥埋伏了康茂才,在新河河口埋伏了赵德胜:这三支人马是防止汉舰通过沿南京西面城墙流到长江的那些狭窄的河港网络驶抵南京城墙。他们把些尖头的“莲花”桩打到岸上,防止敌船运兵登陆。当江东桥的埋伏正在实施的时候,陈友谅的幼弟陈友仁已经统帅一万人马往下游驶来。他在新河口之北的龙湾登陆,袭击并俘获了驻守在城正北方的邵荣的明军。他于是竖起了栅栏,等待大军的到来。
龙湾是比江东桥好得多的一个伏击的地方,因为龙湾和新河之间的一片开阔地可以使大多数汉军上岸,而设伏的明军仍能借平原之北的石灰山作屏蔽,如果进行得顺利,随时可以在后面打击汉军,还可以切断它与长江的联系。朱元璋的如意算盘是,如果康茂才的倒戈没有兑现,陈友谅会在龙湾上岸。他派了常遇春带三万人去石灰山静候伏击,让徐达兵团等在南京的南城外面,如果必要他从这里可以驰援杨靖和康茂才,然后朱元璋自己带领预备队驻扎在城墙西北处当时称为卢龙山(人们通常称为狮子山)的地方,他在这里俯瞰长江和整个战区。朱元璋下令,挥动红旗表示敌军的到来,从他的卢龙山驻地挥动黄旗时则是命令石灰山的部队出击。明军水军被派往下游,陆军则到达指定地点,等待天亮。
地图3 南京及其近郭形势
6月23日晨,陈友谅率舰队向下游行驶,攻打大胜关。这里的港汊因太窄而不能用,特别是在对付杨靖的坚强抵抗时更是这样。陈友谅突然停止行动,向江东桥驶去。他看到这桥是石头的,康茂才也没有来接应他。他怕江东桥这里有埋伏,就向长江返航,并直驶龙湾。汉军在龙湾弃舟登陆,在平原上整队。朱元璋在卢龙山顶上把他们看得一清二楚。他命令他的士兵吃好喝好和休息好,准备战斗。
下午的天气闷热不堪。当一阵雷雨袭来时,朱元璋挥动红旗,让他的军队向北跨过平原,直指汉军栅栏。汉军的反应是向他们开过来,离开了长江。陈友谅正在抓住另一支貌似孤立的明军部队不放。当暴雨停止的时候,朱元璋命令击鼓进攻,然后又命令举起黄旗。朱元璋和冯胜的军队攻进汉军后卫,迅速打赢了这一仗。汉军阵线七零八落,它的士兵纷纷逃命。那些逃到江边的兵卒发现已经退潮,他们的许多船只已搁浅在泥滩上。
明军因此俘获了100艘大船和数百条小船,可能占汉军舰队的半数以上。这些船只使明军在1361年和1362年的长江战争中稍占优势。陈友谅及其大多数人马挤进那些能够开动的小船上逃命。他们多数人逃到九江,尽管有明军跟踪追击。汉军在战场上留下了2万具尸体,7000名俘虏,这些俘虏多数人是赵普胜的部下,他们都高兴地又同朱元璋部下的老战友们会合在一起了。陈友谅在江西的地位因他的失败和他个人部队的损失而发生动摇。主动权转到了明军手里。在龙湾战斗尚在进行的时候,胡大海从浙江进犯江西,夺取并守住了广信府府城。这个行动打开了明军在陆路攻占江西全境的前景。
朱元璋企图征服江西(1361—1362年)
朱元璋由于仍在全神贯注于同张士诚的长期冲突,他一直等候到了1361年年中才试图利用1360年对陈友谅的胜利。1361年朱元璋向长江上游进军,胜利地把陈友谅赶出了九江,并封锁了他在武昌的残余部队。朱元璋于是用1361—1362年的冬天降服了江西各城池。如果吞并全江西,就会使得朱元璋在力量对比上极占优势。可是,朱元璋很失策。他在江西完全到手之前离开了南昌,因此他只能调回武昌地区的部队来镇压随后出现的叛乱。当他离开南京的时候,浙江爆发了叛乱,接着在他的最高级指挥官中发生了叛逆事件。其结果是陈友谅得以有时间放手重新武装,并进攻摇摇欲坠的明政权。
陈友谅在回到九江以后,胜利地重建了他的权力,但是由于他的失败,他的威望大不如前。朱元璋也正在这时回过头来专心应付吴军。他在江西留下来的兵力却不足以瓦解汉政权。胡大海任命他的养子胡德济为广信府同佥,他们父子两人击退了汉军想重新夺取此城的企图。邓俞促使江西中部的浮梁县城叛而投明,但其他州府城池未起而效尤,它们的领袖们仍然忠于陈友谅,虽然他们在1360年和1361年并未给他以任何支持。到了1361年年中,情况已经变得很明显:除非明军主力大举进犯,这些城市是不会投降的。后来,在1361年8月24日,汉军方面的将军张定边以突袭手段重占安庆。明军巢湖将佥院赵仲中逃往南京,朱元璋杀了他,把他的职务和他的巢湖部下转交给了他的弟弟赵庸。以前龙湾战斗的结果之一是安庆落到了明军之手。它再次被对方夺去则是一个严重的挫折,这件事最后使得朱元璋相信,尽管在明军远离南京在外作战之际有吴军进攻的危险,明军也必须全力进攻汉军。
1361年9月11日,朱元璋率水军从南京起航溯江而上。他们于19日抵达安庆,并摧毁或俘获了停泊在那里的船只。他们没有拿下城来,但是他们绕过了它,继续上驶,并于23日到达鄱阳湖的入口处——湖口。明舰到来的消息使得本来摇摇欲坠的汉政权更加震动不已。在航程的中途,两名汉军将领丁普郎和傅友德率他们的舰队投奔明军。汉军巡逻艇发现了在湖口外的明军舰队,把消息及时带到了九江,使陈友谅能部署自己的水军迎战。占优势的明水军从两侧包围汉军阵线;在损失了100多艘大小战船后,陈友谅把船只撤退到九江以南湖内的天然良港中去。那天夜里,他又叫士兵们上船,再次出航,躲过了敌舰的耳目。他溯江而上至武昌;在这里他的权力仍然是未受到挑战的。
次日,明军从江面上猛攻九江城垣,利用架在船尾上的云梯。拥有这种装备的这种船只可能本来是陈友谅的,并且是在头一年攻打太平时就已经这样装备起来了的。朱元璋于是派徐达带领一支舰队去追赶陈友谅。徐达没有能阻止陈友谅到达武昌,因此抛锚于汉阳城外,他攻城,但没有拿下汉阳。可是,他利用这种形势一直封锁陈友谅到1362年4月。
朱元璋自己在九江督率主力部队,他同时发动了一场基本上是政治的攻势,想迫使江西各州府城池投诚。到了10月2日,南康、饶州和建昌都派了使节来表示拥戴明政权,湖北东部也有三个城市已经这样办了。朱元璋这时不想把他自己的军队放在这些城市,因为那样就会不利于其他人投降。他继续谈判,想让南昌这个省会和重要城市投顺。等待政策变得越来越危险了,张士诚最后有了活动的迹象,派兵包围了太湖东南边的长兴,使常遇春于12月不得不被派去救援。明军一方面要阻住张士诚,一方面要牵制陈友谅,同时还要拿下江西。他们的战线确实拉得太长,太危险了。
当邓俞于12月9日攻占了抚州(今临川,距江西的南昌东南仅60英里)的时候,汉军驻南昌的总指挥官、行省丞相胡美最后请求议和。他的主要要求是:他的部队参加明军,但必须保持原建制,由他自己统率。朱元璋允许他保留他的大部分军队,条件是要他放弃南昌,在明军主力部队中服役。胡美同意了这个条件,他后来在明朝被封了爵位,但是他没有能够说服他所有的部下。1362年2月10日,朱元璋把明军主力开进了南昌。在下个月,袁州、吉安和江西的另外几个小城市也都效顺了明政权。
由于占领了九江和南昌,朱元璋实际上接过了陈友谅原先在江西的主宰地位,也接过了这个政权的一切包袱。其他府城的同佥都是天完叛乱以后地方军事化过程的产物。当每一个同佥“投降”以后,他就被委以管理这个城市及其附属之县,不然就不能再有归降者了。这种对待降者的办法确实保证了他们能熬过任何一次危机,例如在1361年和1363年就是这样。朱元璋此时还不够强大,没有多少时间在他的主力军和各城市戍军之间强制执行军队的改组,而这是统一明军和由中央控制府城所必须做的事。他已经离开南京太久了。1362年3月11日他开始返航。当他行驶于江面上的时候,他的权力正濒于崩溃。
早在1361年12月24日,常遇春已经解除了吴将李伯升对长兴的包围,并在此后已返回南京。吴军再一次蛰伏起来,浙江内陆被明将胡大海攻占后似乎牢牢地掌握在他手中。可是,杨完者手下的苗族非正规军变得极其不安分了,其原因不见于史料,但它似乎影响了整个苗族的军队。在明军攻取浙江之前这些军队就在元军中服役,他们多半戍守在金华和处州。当朱元璋远在长江上游之时,苗军就互通消息,准备一致行动,参加叛乱。1362年3月3日,金华的苗军开始叛乱,并杀死了胡大海;四天以后,处州的苗军也叛变,杀死了城防守将耿再成。叛军可能是受吴军的煽动,在四个府城有两个已落入叛军手中的情况下,明军在浙江的整个地位已是岌岌可危了。
一回到南京,朱元璋于3月16日任命他的外甥、当时任严州府城防守将的李文忠为浙江明军大都督。李文忠马上夺回了金华,但是苗军从金华逃走,投向了张士诚的部队。张士诚派他的兄弟张士信统大军攻打明军的外围堡垒诸全。既要抗拒入侵,又要对付叛乱,李文忠为此用了很大心计。朱元璋已派邵荣带兵去收复处州;李文忠不可能期待从南京得到增援了。尽管邵荣在龙湾战斗中失利,他仍是明军最高将领,其地位甚至在徐达和常遇春之上。李文忠于是放出风声说,号称难以对付的邵荣正来救援诸全,但实际上他派胡德济带领他的广信军驰援。当后者开到诸全时,张士信和他的人马被一股宣传声势扰乱了军心,致使他们很容易地被守军和援军的联合攻势所打败。与此同时,邵荣收复了处州。
在浙江被逐步绥靖的时候,江西的战火却越烧越旺。朱元璋曾经给邓俞留下不多的兵力守卫南昌,而把大部分降军带回了南京。他曾经下令胡美的两员下级军官——祝宗和康泰——带着他们的队伍去上游增援汉阳城外的徐达。只是在明军主力部队离开了南昌以后,朱元璋才发现祝宗和康泰始终反对胡美的投降,并且计划搞叛乱。这两名将官在江上游弋,4月12日傍晚他们的水军来到南昌城墙边。他们突袭了守军,用大炮摧毁了新城门,并洗劫了这座城市。邓俞只身逃到了南京。朱元璋只得让陈友谅在湖北和湖南重建他的权力,以使明军能恢复在江西的地位。他命令徐达放弃对武昌的封锁,向下游行驶。5月13日,徐达收回了南昌。与此同时,常遇春修复了安庆城垣,把它再度置于明军控制之下。安庆可以屏障明军的心脏地带,挡住汉军再度发起的进攻,但是,如果明军想最终确实控制江西的资源,他们必须加强对南昌的控制。朱元璋任命他的另一名侥幸活下来的侄儿朱文正总统南昌城守,而以邓俞为副。守军增加了人数,城墙得到了加强,并从江边往后挪了一段地,使城墙不能从船上攀登。
如果不是邵荣在仲夏的叛逆行为,早在1362年朱元璋可能会冒另一次与汉军作战的危险。虽然邵荣也是朱元璋起事时的老伙伴,在明军将领中也身居高位,但他在见于史籍的有名战役中并非赫赫有名。他从苗人手中收复处州是他几年来第一次独立作战的战果。当他的战功未被承认时,他增长了不满情绪,并与另一胸怀不满的将领赵继祖密谋发动政变。按这两位密谋者的计划,当明军于8月3日回师南京时,在一次阅兵以后,把他们的队伍安排在行军纵队的前面。他们打算,在他们的队伍随朱元璋进城以后便关上和守住城门,乘混乱之机杀害他。这个阴谋失败了。一面旗帜被风吹起,卷住了朱元璋的身体,这个预兆使得他从另一个城门进了城。情报员后来揭发了这一阴谋,邵荣和赵继祖被逮捕,并被处以死刑。后来朱元璋有些犹豫,他征询了其他将军的意见,常遇春直抒己见,坚持把邵荣和赵继祖处死,结果就这样执行了。可是,这个事件的结果是使得朱元璋在以后一年多的时间中要依靠高级将领自由发表意见办事了。
1363年的鄱阳湖之战
陈友谅又调集了一支新舰队,于1363年再次展开攻势,企图像1360年那样从江上攻取明军领土。但事与愿违,陈友谅因围困南昌三个月而深陷泥潭,他在一场主要在江西鄱阳湖的水战中被摧毁了。朱元璋在这里的胜利是他将要掌握政权的关键性转折点;他以后再也没有遇到过与他相匹敌或更高明的对手了。鄱阳湖之役以后朱元璋夺取了江西和湖广,这使得他拥有的人员数量满足了他打败张士诚的需要,而吞并了张士诚的土地以后又使得明军能在1367年及其以后迅速扩张其势力。
像我们在上面看到的那样,到1362年末,叛逆和叛乱曾使明军失去了因1360年胜利而获得的主动权,并且危及1361年所取得的战果。在明军尚不知情的情况下,陈友谅正在武昌调集他的无敌舰队,张士诚的活动也日益咄咄逼人。朱元璋视野内唯一光明的地方是华北:1362年7月6日察罕帖木儿被刺以后,那里又一次陷入了混乱。察罕之被害意味着,迟至1363年,元朝勤王军方面再也没有足够的联合力量能够摧毁明方的军队了。
那一年刚开始便有吴军突袭红巾军运动对它有感情的中心之举。1363年2月16日,作为吴的三位野战军指挥官之一的同佥吕珍突入安丰,杀死了它的实际统治者刘福通,并俘虏了傀儡“宋”帝韩林儿。整个宋帝国这时已经成为明政权,不过加上了安徽—河南边界上这一片人烟稀少地区中的这一个不起眼的小城而已。朱元璋的追随者此时包括一些有影响的人士,他们希望明军和红巾军要拉开一点距离。这些人士中有著名的刘基及其浙江同乡文人学士。这些人此时刺耳地和有理有据地说出他们的主要是从军事上考虑而不是从文化思想上考虑的反对意见,即明军不应该分兵去再占安丰。但是,明军中仍有很多人崇敬韩林儿,这就使得救援工作成为必不可免的了。
3月份,朱元璋率明军主力北上安丰。徐达和常遇春攻城,赶走了吕珍,总算救出了韩林儿。朱元璋随即带兵回南京,安丰成了一座空城,由元军占领。但不幸的是,战斗并未结束。1355年曾经从家乡把巢湖分遣队赶走的庐州军头目左君弼曾派过一支人马来帮助吕珍的入侵。明军将领们坚持必须给他以惩罚,朱元璋未能说服他们,尽管有刘基犀利的反驳言论也枉费口舌。结果是,徐达和常遇春用了1363年4月到8月这几个月的时间徒劳无功地围困了庐州府城,而陈友谅却未受干扰地执行了侵犯江西的计划。
陈友谅动员了湖北和湖南的所有丁壮,建立了一支新水军。史料上没有交代他是怎样完成这些事情的,但是可以清楚地看出,徐达撤走他的封锁部队帮了陈友谅的忙,因此他能在对明军保密的情况下进行他的准备工作。他的舰队的主力拥有漆成红色的三层甲板的大战船,上有掩护弓箭手的包铁塔楼,它们的船尾高得可以爬上任何城墙。有一件材料说,每一只这种战船可载两三千人。它们还附有各种各样的大小船只。陈友谅的个人行动作风是一贯强调他在主力部队中的个人领导形象,他此时孤注一掷地创建了这样一支大舰队,使之足以在任何情况下克敌制胜,但是它的失败也意味着他无可避免地要丧失他的根据地。
陈友谅把他的军队及其家属、马匹和供给全都放到了船上,在春汛时他开始顺流而下。史料说他带有60万人马,大概此数之一半较为可信。汉军的无敌舰队现在与明军主力相比,舰只大得多,数量和人员也多得多。陈友谅的计划是要求多次重现1360年太平之役的胜利,他将从船尾上突袭这些沿江府城。1363年6月5日,汉军舰队出现在南昌水面上。如果南昌陷落,陈友谅就有理由希望江西的各地城防守将(他们多数人原来是拥戴他的)会回心转意,重新回到他的麾下。这种发展会重现1359年末的领土形势;从他在湖广的措施来看,在他再次进军明军之前,这一次他大概已经不遗余力地调动了江西所有的军事潜力。
南昌面江的城墙在1362年经过改建,使得他不可能从船上袭击来夺取该城,从而打乱了陈友谅的时间表。他被迫封锁南昌,改用常规的攻击方式。明军的守军打退了所有汉军的攻击,显然给了攻击者以重创,而且用出击方式给以进一步的打击。6月9日,汉军破坏了一段长300多英尺的城墙,但邓俞的士兵用火力击退了他们,同时在被毁的那一段城墙之后又建了一段半圆形工事。6月19日明军出击,打垮了陈友谅对新城门的一次进攻。6月24日,对水门的攻击无功而返。围城还在继续时,季节性的江湖低潮时期即将到来,战略主动权正从陈友谅手中溜走。可是,损耗和饥饿削弱了南昌的守军。即令他在1363年不再做任何努力,下一年南昌的收复也会使陈友谅在极其有利的条件下重开战端。
7月24日,明军的南昌将领们答应在以后某个未具体约定的日期投降,因而获得休战的机会。他们同时又派遣了信使偷偷溜出汉军封锁线前往南京。8月4日信使到达南京之事是史料中的第一个暗示,表明朱元璋甚至意识到了江西的局势,虽然南昌已被围达两个月之久,而通信的阻隔也应该说已经给了朱元璋某些启示。和1360年大大地不相同,明军的情报在1363年非常糟糕。到了1363年的6月至7月,朱元璋被两件事捆住了手脚:这就是被围的庐州还拒不投降;再就是靠近吴军边界的浙江诸全要塞的明军同佥谢再兴在6月8日叛变,此人跟吴军的秘密勾结已经真相大白。胡德济又一次率军从广信长途跋涉到诸全,他围困了此地,但未能把它拿下来。到了8月6日,他撤围而去,回到了广信。就在那一天,可能是由于原来就强烈反对庐州之役的刘基的呼吁,朱元璋最后终于出面反对他的高级将领们。他命令徐达和常遇春撤庐州之围,要他们把军队重新在南京集结,并派胡德济走陆路从广信驰援南昌。
明军舰队把重新集合起来的主力军队在8月15日运离南京。如果根据一条史料说它大约是“千船载十万人马”(的确,多数材料说是20万), 那么,它的人员大致与1360年的明军主力相当。可以假定,自从1360年以来,明军扩军的部分已经用于补充浙江的军队、南昌的戍军和加强南京的常备守卫部队。在这里,明军的情报和计划又一次出了问题。陈友谅甚至在被围之中兵员受到损失和他派部队进行江西中部战役以后,其兵员数量还大大超过明方远征军。此外,明军也不能和汉军的巨大战舰相抗衡:后者的高度虽然是为了攻城而设计的,在接近和攀登敌船的战斗时拥有巨大的优势。水位至少在下降,明军的水军领袖们相信这对他们有利。即便如此,他们还是要同时在两线作战,而且由于要驶向上游去打一支占优势的敌人(和1361年时截然相反),明军已在进行一场殊死的赌博。
8月24日,舰队开到了湖口。明军在长江北岸与鄱阳湖口相对的泾江口建筑了防御阵地,又在鄱阳湖湖面至长江上的湖口的狭窄水,道上的南湖觜也建筑了防御阵地。他们希望这些阵地能阻止汉军船只离开鄱阳湖。如果说陈友谅已派巡逻船只到湖口的下游去,那么,它们未曾向他警告关于明军的到来,他现在已是在湖中陷入重围了。可是,明军此刻的主要目的是救援南昌,所以明军舰队不是仅仅驻守在湖口,而是向南行驶,于28日进了湖内。同一天,陈友谅解除了南昌之围,让他的军队上了船,也北驶入湖。8月29日很晚的时候两支舰队相遇于康郎山。它们等到日出时开战。
经过四天的水上鏖战,明军给了敌人以重创,但没有能够摧毁汉军舰队,也没有在数量上取得优势;明军最后还是放弃了鄱阳湖。8月30日晨,朱元璋把自己的水军分成11队。重型舰只摆在中央,由徐达和常遇春及他本人统率,轻型舰只摆在两翼,由俞通海和廖永忠率领;后者是两位明军领导层中出身于巢湖的有经验的水军将领。明军阵线向前推进并发动攻击;俞通海的舰队占了上风,用石弩发射火药筒,摧毁20多艘汉军舰只。可是在中央部分,高大的汉军舰船把明军阵线逼向后退。朱元璋的旗舰几次受攻击,徐达的舰只则严重受损。明军舰队退到一个浅水区域,使汉舰不能追击,因此得以脱离战区,虽然有几只船已经搁浅。第一天的战果使明水军士兵都感到气馁。夜里,朱元璋命徐达把受损的战舰带回了南京。
次日晨,明军将领很不愿意与“屹立如山岳”的汉军战舰作战。朱元璋果断地处决了几个下属之后阵线有所推进,但明军舰队再一次被迫后退,而且损失了几个重要的人物。在此以前,明军不能打赢那种以舰只对舰只的仗。由于受到前一天俞通海用火炮攻击而取胜的鼓舞,又由于看到了汉军舰队的阵形非常密集,朱元璋命令常遇春准备一些小船只,故意用做火攻船只。常遇春准备了七只渔船,上面装满了一捆捆填充了火药的芦苇。当下午风势转变而从明方吹向汉军的时候,这些由特别挑选的“敢死队”水手操纵的小船驶进密集的汉军舰队,放起火来。密集的汉军队形使它的巨舰能在近战和攀登船只之战斗中发挥最大的效果,但是也使它们容易遭受火攻。纵火的结果,几百条汉军大小船只被毁,死亡士兵约6万人,相比之下,据说明军的损失为7000人。陈友谅的两个兄弟以及另外几名水军将领均被杀,这就证明了汉军损失的惨重。但是明军也损失不小,双方舰队在次日略作休息和修补。
9月2日早晨,战事又起。汉军舰队尽管遭受了损失而仍比对方强大,虽然它的相对优势已大为减小。这一次汉军的队形是散开的,足以防止对方再用火攻,但一股股明军小船却可以包围和摧毁孤立的汉军船只。忽然间有一支六条船的明军小舰队插入汉军阵线,绕过了它的一端,并重新与明军舰队会合在一起。可是,这个突发性的行动显然不能招致任何决定性的结果,因此在中午前后,朱元璋迫于他的将领们的压力而下令脱离接触,退出湖面。主张撤退的俞通海说,湖中的浅水妨碍了明军船只的活动。跟强大的汉军打一场旷日持久的消耗战,不仅不大可能使明军有获胜的前景,甚至大有被打败的危险。很显然,明军不能指望再用火攻搞战术性的奇袭了。明军最初驶入湖内的目的是解救南昌,但是到了此时朱元璋似乎已经听到,胡德济的军队已经自广信从陆路解了南昌之围。这一发展使明军决定放弃战斗,改而采用把汉军舰队困在湖内的战略。
9月2日夜,每只船尾上都挂起一盏灯笼,明军舰只成单行纵队开向鄱阳湖的湖口。汉军舰队在天亮以后跟踪而至。由于没有在湖面战斗中歼灭明军,陈友谅因早先未能守住该湖湖口而落入了陷阱。汉军领袖们互相争吵:到底是用船只夺取湖的出口处呢,还是改取陆路径趋武昌。陈友谅的左、右两名金吾将军投降了朱元璋;后者送了一些侮辱人的信来刺激以性情暴烈出名的陈友谅出战,但同时也静待陈友谅弹尽粮绝。在这个时候,某些明军将领们却变得紧张起来,想返回南京,但是常遇春这一次又竭力支持了朱元璋的权威。明军舰队一直留在一起,没有再犯1362年那样的错误,那时明军曾被迫在第11个时辰给陈友谅让开了一个口子。
陈友谅等了一个月的时间才突围。他的舰队凭借南湖觜的地位很容易发动攻击,10月30日便出现在湖口,然后沿江上驶,希望开抵武昌。朱元璋早已在湖口上游摆下了舰只专等这样的机会到来,并且还准备了火攻船。当这些火攻船放出漂泊时,汉军舰只马上向下游散开,明军船只紧追不舍。到了下午很晚的时候,一簇簇互相咬住战斗的船只漂流到了泾江口,埋伏在这里的明军又投入战斗。陈友谅在战斗的这个节骨眼上被杀;当他在一叶小舟上穿行于船只中间时被箭射穿了眼睛。他的死讯迅速传遍战斗中的船只,明军大奋,打击了汉军仅存的一点点士气。入夜,汉军舰队土崩瓦解。张定边率领他的小舰队逃走,把陈友谅的幼子陈理也携带而去,在逃回武昌时让他登了汉帝之位。次日晨,其余的汉军舰队——总数有5万人——就投降了。10月8日,朱元璋率舰队和俘虏一起回到了南京。
明—汉之战的决战阶段就这样结束了,它本身是导致明王朝建立的一系列发展中的关键性事件。陈友谅之死和他的大部分舰队的被毁或被俘,使朱元璋取得了他在1362年的挫折中未曾得到的完全的胜利。在此以前,明军一直在与在事实上或潜力上占优势的汉军作战,同时还要对付东面吴军进攻的危险。现在,由于陈友谅已被消灭,明军能够马上着手吞并江西,并最后拿下湖南和湖北。明的人口因此扩大了两倍,长江地区在1360年的那种长期的势均力敌的局面就被排除了。
从1364年起,明军控制下的人口数量使得它能征集到两倍于吴的军队,所以明军就以并灭吴为下一个目标。明军在事实上已经变成了中国最强大的地区性力量,它的军队可以在几条战线上作战,其结果甚至又加强了它的力量。另外,鄱阳湖之战使朱元璋在他的政权内部也增加了权力。有些文人仍不太心甘情愿地给他服务,士兵们仍然温情脉脉地看待韩林儿,但是,这两种人现在都把朱元璋俨然当做未来的皇帝。1363年9月的企图是明军军官们藐视朱元璋的意愿的最后一次;后来,他以他提高了的威望和他在被征服领土上分配俘虏部队和分配指挥任务的权力,再加上其他因素,使他终于叫他的将军们俯首听命了。到了1364年,明政权已经变成了元帝国明显的继承者,当然,要确认这种继承权还得有几年仗要打。