陈友谅已死,接着就轮到张士诚了。此前趁着朱元璋西征,张士诚就开始侵城略地。于是南至绍兴,北至通泰通通成了他的属地,幅员辽阔,声势浩大。张士诚让部下对其歌颂功德,自称吴王。随后建府第,置官员。任用弟弟张士信为左丞相,妹夫潘元绍为参谋,一切政事都由他们二人做主。张士信荒淫无度,只知玩乐,一时间朝纲败坏。
朱元璋回到应天府后,命徐达为大将军,常遇春为副将军,率领二十万大军讨伐张士诚,并下令军中:“此行不得妄杀一人!不得抢掠百姓财物!不得毁人房屋!不得掘张士诚的祖坟!”接着召徐达、常遇春入内,问他们:“你们准备先攻打哪里?”常遇春说:“当然是直捣平江了。平江是张士诚的老窝,只要攻破平江,其余郡县就可以不攻自破了。”朱元璋说:“错!张士诚贩盐起家,与张天麒等人互相支援,倚为手足。一旦张士诚穷途末路,张天麒等人定会拼死相救,到时就不好办了。如今之计,要先攻湖州的张天麒,剪去张士诚的羽翼,然后再移兵平江,这样才能稳操胜券。”二人领命后退出。
徐达、常遇春率兵二十万,从太湖攻向湖州,沿途战无不胜。但要想攻入湖州,首先得截断敌人的粮道。常遇春经探听得知,张士诚的妹夫潘元绍已运送粮饷到乌镇。于是发兵偷袭,大获全胜。粮草一断,张士诚的援军短时间也无法到达。张天麒无可奈何,只好交了降书,迎接徐达入城,湖州就此拿下。
张士诚听说湖州沦陷,急得手足无措。不料又传来杭州、嘉兴沦陷的消息,不由得魂飞魄散,连身子都抖了起来。张士诚一时急躁,竟然派徐义、潘元绍等人带着勇胜军潜出西门,绕到虎邱去袭击常遇春的大营。
常遇春因为事先已经得知,便与王弼会师赶去拦截。两军相会,互相拼杀起来。张士诚又亲自带精兵支援,来势汹汹。常遇春的部下杨国兴战死,士兵们都有点畏缩不前。王弼看到这种情况,一马当先,挥着双刀冲入敌阵。敌人被冲乱后,常遇春乘机杀过来,竟将张士诚部众逼到了潭边。张士诚连人带马堕入潭中,差点淹死。部将急忙下水相救,才把张士诚带上岸。张士诚狼狈地逃回城中,检查将士时发现伤亡无数,竟然捶胸痛哭起来。
正在张士诚痛哭时,有位客人求见。张士诚召他进来问:“你要说什么?”客人回答道:“您可知道天数?从前项羽叱咤风云,百战百胜,最后却被汉高祖刘邦打败,自刎乌江,可见天数难逃。您当年以十八名勇士攻入高邮,击退百万元兵。东据三吴,拥千里土地,在南面称王,不亚于项羽。如果能爱民如子,赏罚分明,天下不难平定。您怎么会沦落到这种地步呢?”张士诚说:“你之前不说,现在已经来不及了。”客人又说:“曾经您门客如海,子弟亲戚闭目塞听,内外将帅朝歌夜饮,日日酣醉,哪知道有今天?就算有人想说,您也不愿意听啊。”张士诚叹了口气:“事已至此,还说这些有什么用。”客人说:“在下倒是有一计,不知道您愿不愿意听?”张士诚说:“如果真能大难不死,你不妨直言。”客人说:“不如早从天命,自求多福。你不做皇帝,还能做个万户侯。得失之间,还要您自己考虑!”张士诚沉思了很久说:“你先下去,让我想一想!”客人于是退下。
张士诚踌躇了一个晚上,决定不降。随后带兵冲出胥门,又被常遇春杀退。弟弟张士信督兵守城,被飞炮击中脑袋,当场死去。徐达攻了很多天,死伤无数,才攻破城门,士兵蜂拥而入。守将唐杰等人招架不住,先后投降。张士诚收集了两三万残兵败将,在街上进行巷战。那时大势已去,没过一会儿,士兵们就已纷纷逃散。张士诚逃回宫内,徐达等人乘势杀入。只见张士诚的宫中,烈焰翻腾,照红了半片天空。
张士诚的宫里有一座齐云楼,是张士诚的妻子刘氏居住的地方。张士诚兵败的时候,曾对刘氏说:“我要是战败而死,你们怎么办?”刘氏说:“夫君不用担心,妾决不负君!”等到平江沦陷,刘氏就命乳母金氏将两名幼子抱出来,然后将群妾侍女赶到齐云楼上,让养子辰保在楼下放火。霎时间烈焰冲天,一座高楼被烧成灰烬。随后,刘氏也悬梁自尽。张士诚一个人坐在室内,左右的人已经全都逃走了。徐达命降将李伯昇去劝张士诚投降。
李伯昇去敲门,敲了很久,也没有回应,他只好破门而入。只见张士诚穿着龙袍,两脚悬空,已经吊在梁上了。李伯昇急忙令降将赵世雄解绳相救,张士诚竟然苏醒过来。大家再三开导张士诚,他始终闭着眼睛,一言不发。在去往应天府的路上,张士诚不说话也不进食,奄奄待毙。到了应天府之后,李善长百般开导,劝他归顺。张士诚竟出言不逊,惹恼了李善长。李善长禀报朱元璋,想置他于死地。朱元璋还想保全他的性命,哪知张士诚竟乘人不备,自缢身亡。
张士诚于元至正十三年(1353年)起兵,二十四年(1364年)自称吴王,二十七年(1367年)缢死在金陵。朱元璋为他殓葬,降将大多免罪。朱元璋又将平江改为苏州府,接着论功行赏,他封李善长为宣国公,徐达为信国公,常遇春为鄂国公,其余将士也都一概做了封赏。