朱元璋攻占集庆改其为应天府后,其辖区就和张士诚接壤,此后,双方兵戎相见,战事不断。张士诚,江苏泰州(今东苏泰县)人。出身盐贩,1353年,反元起义,攻占了泰州、高邮等地。1354年(至正十四年)他自立为王,建国号大周,以高邮为都城。1356年(至正十六年)二月,他先后攻占了平江(今苏州)、常州、松州、湖州(今吴兴)等地,并迁都平江。张士诚为人宽厚,也能礼贤下士。但他又生性持重,狡而懦,气度小,没有主见,缺乏深谋远略。总是不能抓住发展自己的机会,当陈友谅约他一起攻打朱元璋时,这本是一个消除敌对势力的好机会,他却死守家园按兵不动。鄱阳湖之战时,朱元璋担心张士诚会乘机袭击应天,特派徐达回守应天;可张士诚根本没有这个打算,他的最大弱点就是无治人之能,致使其统治集团内部松散不振,缺乏战斗力。张士诚占领浙西这块富庶的鱼米之乡后,整个集团逐渐腐化堕落,大家都贪图享受,导致政治上的腐败无能,而他本人又不勤于政事,胸无大志,养尊处优,只想保住这份家业,毫无进取之心,把其它的一切事情都交给手下大臣决断,而其所用之人,又贪污无能,才小智疏,欺上瞒下,使得国事日落。正如朱元璋所讲:“我诸事无不经心,法不轻恕,尚且有人瞒我。张九四(士诚)经岁不出门,不理政事,岂不着人瞒!”张士诚迫于朱元璋的军事压力投降了元朝,接受了元朝的太尉封号,当时元政府财政危机,大都严重缺粮,而张士诚有的是粮,这也是元政府招降他的重要原因,降后,张士诚每年都要给元朝十几万石粮食,为元朝解决了不少困难,1363年2月,他还帮元朝攻占了大宋政权的据点安丰,誓与红巾军为敌,同年7月,张士诚又帮达识帖木儿除掉杨完者,以此要求元朝给他加官进爵,元廷没有答应。一气之下,张士诚于9月份停止向大都运粮并自立为吴王。东吴统治集团的行为,引起了地主士大夫们的不满和非议;不少有志之士出于诚意规劝张士诚,但张士诚根本听不进去,依然我行我素。当张士诚醉生梦死,贪图享乐之时,西吴王朱元璋却正在与谋士们商量着如何攻击张士诚,他指出:“天下用兵,河北有孛罗帖木儿,河南有扩廓帖木儿,关中有李思齐、张良弼。河北军队数量多而没有纪律,河南的稍有纪律而军力不强,关中的一部道路不通,粮饷又接济不上。江南只有我和张士诚。士诚多奸谋,会用间谍,可是部队尤其无纪律。我统有几十万大军,固守疆土,修明军政,建立严格的军事纪律,委任将帅,捕捉有利战机,统一天下是没有问题的。”当时元朝内部的矛盾也相当尖锐,几派相互攻伐,在关中地区打得不可开交,谁也无暇顾及南方。
朱元璋抓住机会,多方做好攻打张士诚的准备工作,先是派兵骚扰和攻取一些城池;采取局部包围,消耗张士诚的兵力和物力,为大规模的战斗做好准备。张士诚为了扭转被包围的被动局面,先后派吕珍、张士信屡次攻打诸暨,但每次都大败而归。
至正二十三年四月,诸暨守将谢再兴叛变朱元璋投降张士诚,谢再兴乃淮西旧将,朱元璋亲侄朱文正的岳父,他有两个心腹因贩卖违禁品,被朱元璋发现后杀死,其人头被挂在谢再兴的办事厅内,此事让谢再兴心里非常不快,不久,朱元璋又做主把谢的小女儿嫁给了徐达,又召谢到应天议事,令其为副将,由李梦庚任诸暨守将,谢再兴异常气愤,于是捉了李梦庚和元帅王玉等,投降了吕珍。朱元璋知道后,非常生气,使他又想起了一年前大将邵荣、赵继祖谋害自己一事,想起这些,他就不寒而栗。邵荣和朱元璋一起在濠州起义,也算是生死与共的战友,却因为不能在家与妻子同守同乐而谋反,实在令人不能信服。眼下,自己的亲家,谢再兴又叛他而投张,确实再一次引起朱元璋的深思。气愤之余,他想的更多的是今后如何更好地驾驭众将官,这也使得朱元璋对部下变得猜忌防范,残忍好杀。
张士诚利用谢再兴的叛降,继续加紧与朱元璋争夺诸暨,但每次都无功而返,数次的攻坚争夺战,并没有威胁到朱元璋,反而使张士诚损兵折将,元气大伤,这时,朱元璋对陈友谅的战争取得了胜利,凯旋而归,一场孕育已久的对东吴的战争即将上演。
1365年(龙风十一年)十月,朱元璋在江淮地区发动了攻打张士诚的第一次战役。进行大规模的攻坚战斗,朱元璋分析了张士诚防区的情况,认为张的统治中心是以平江为中心的江南浙西一带,那里人口密集,物产丰富,防守坚固,而江北的淮水流域防守相对薄弱,且中间隔着长江,南北兵力不好互应,于是朱元璋制定出“先取通、泰诸郡县,翦士诚肘翼,然后专取浙西”的总的战略方法。按此方针,整体作战步骤又分三阶段进行:第一阶段,主要是攻取江北的淮东地区,翦士诚羽翼;第二阶段,分兵两路攻取湖州、杭州、断东吴两臂;第三阶段,围攻士诚老巢平江,攻其腹心,彻底削灭东吴。
同年十月十七日,朱元璋命徐达、常遇春、冯胜等率军渡过长江向淮东挺进。二十一日,徐达等直奔泰州,二十三日,进攻泰州新城,击退张士诚派来的援兵,闰十月二十六日,徐达、常遇春一举攻克泰州,并乘胜进逼兴化、高邮等地。1366年(龙凤十二年)三月,徐达与冯胜合围高邮。冯胜在此之前曾有过失误,此次攻城,他拼命攻城,异常英勇,四门齐上,一举攻破,不久,兴化、濠州、宿州、邳州、安丰等地皆被攻克,整个淮东已尽为朱元璋所有。第一阶段战役胜利结束。
朱元璋于七月底又召集文武重臣研究对张士诚的第二阶段战略,朱元璋指出:张士诚出身盐枭,与湖州(今浙江吴兴)守将张天骐、杭州守将潘元明等全都是不怕死的亡命之徒,他们与张士诚同甘苦,共患难,互为手足,如先攻取平江,张士诚危机,这时湖、杭的张天骐、潘元明等必然齐力援救,援兵四合,不易取胜;如出兵湖州、杭州,使张士诚疲于奔命,无法救援,我可集中兵力,去其羽翼,然后移兵直捣平江,必然可以取胜。最后决定兵分两路,先攻取湖、杭二州。朱元璋在出征前一再告诫诸将攻下城池后,不许烧、杀、抢、掠,特别不能侵毁平江城外张士诚母亲的坟,以免激怒东吴人产生敌对情绪。
同年八月初四,徐达,常遇春率军二十万从龙汇出发,挺进太湖,在湖州城外大败守将张天骐,并包围了湖州,张士诚怕湖州失陷,急调兵前往支援,并在湖州城东旧馆构筑五寨据守,徐达出奇兵夜袭旧馆东南的潘元绍,切断了平江与旧馆的联系,又令将士堵塞通往湖州的沟港,截断湖州粮道。
九月,李文忠在华云龙分散张士诚兵力而进攻嘉—兴时,率兵攻下了杭州,十月,常遇春偷袭了位于湖州和旧馆之间的升山,破陆寨,这时湖州已成了一座孤城,在徐达的劝降下,湖州守领被迫献城投降。杭州守将潘元明得知渤州已降,也献城归降了,不久,绍兴、嘉兴也不战而降,就这样第二阶段战役宣告胜利结束。
1366年(龙风十二年)十一月二十五日,朱元璋派兵击退守军,逼近平江。徐达用叶兑所献的琐城法攻打平江,即徐达率军围葑门,常遇春率军围虎丘,郭兴率军围娄门,华云龙率军围胥门,汤和率军围阊门,王弼率军围盘门张温率军围西门,康茂才率军围北门,耿炳文率军围城东北,仇成率军围城西南,何文辉率军围城西北,四面筑长围困之,并架起与城中佛塔一样高的木塔;下瞰城中全貌;再筑敌楼三层,每层均备有弓弩、火铳,又用襄阳炮日夜轰击。在攻打平江的同时,徐达又收降了太仓、昆山、崇明、嘉定、松江,虽然如此,张士诚却死守平江不降,两次率军突围均未成功,第二年九月初八,徐达督战猛攻葑门,唐杰、周仁、潘元绍等坚持不住纷纷投降。平江失守,张士诚被解往应天,不说不食,被朱元璋在竺桥用乱棒打死,时年四十七岁。
消灭张士诚后,江南反元斗争已基本结束,而朱元璋作为农民起义领袖的阶段已经过去,作为统治阶级的代言人,地主阶级的政治领袖的时刻已经开始。