湖州、杭州都归降了朱元璋,等于断了平江的左右臂,朱元璋再无顾忌,命令二十万大军将平江围住,然后分派任务:徐达攻葑门,常遇春攻虎丘门,郭兴攻娄门,华云龙攻胥门,汤和攻阊门,王弼攻盘门,张温攻西门,康茂才攻北门。只攻城门还不够,朱元璋又让耿炳文攻击东北面的城墙,仇成攻击西南面的城墙,何文辉攻击西北面的城墙。除了这些,朱元璋又让人在平江城外修了短墙,张士诚就算插翅也难逃。
任务分派完,至正二十六年(1366)年底,朱元璋军开始进行攻城。平江是张士诚经营多年的国都,城池坚固,很难攻打,不过城外的徐达等人有办法,令人造了无数座比平江城城墙还高的木塔,木塔分三层,每层都安置些弓弩手、火铳手,朝着城里乱放弓箭和枪弹。
除了弓弩手和火铳手轮番射击,徐达又设置了不少襄阳炮,日夜轰炸平江城。襄阳炮就是回回炮,虽然名字叫炮,可这并不是火炮,而是一种威力巨大的抛石机,这种抛石机威力非同一般,能发射上百斤的石头,打到哪儿哪儿就是个大洞,并且砸下来伴随着天崩地裂般的声响,十分骇人,徐达用这种东西攻城,对城里守军的心理威慑极大。饶是如此,昼夜不停地攻了七个月,还是没能攻下平江,不得不说张士诚这人虽然贪图享受、没进取心,却是条硬汉。
朱元璋给张士诚写了封信,用东汉窦融、北宋钱俶做例子,希望张士诚可以像他们两个人一样归顺自己。这两个人曾经都是割据一方的势力,最后一个帮助光武帝刘秀破隗嚣,一个帮助宋太祖攻南唐,都是比较识时务的人,所以朱元璋希望张士诚能识点时务。结果张士诚收了朱元璋的书信,没答复朱元璋,假装不知道有这么回事。
但是平江快被朱元璋的军队打成废墟了,张士诚开始想突围,率领死士大开城门往外冲。常遇春见平江城居然大开城门,知道张士诚想突围,常遇春拍着王弼的背说:军中都说你是一员猛将,你能解决他们吗?王弼是朱元璋手下猛将,善用双刀,有个外号叫“双刀王”。王弼听常遇春这么说,应声纵马杀到张士诚军中,舞动双刀乱砍,张士诚军见王弼凶猛,纷纷后退,常遇春趁机率大部队攻击,张士诚军大败,死伤无数,张士诚所骑的战马也受惊掉到水里,他自己差点成了常遇春的俘虏。
张士诚又逃进城里,知道冲不出去,又没有别的好方法,只能天天守着城池,坐以待毙。已经投降朱元璋的李伯升是最早就跟着张士诚兄弟起兵的人,知道张士诚坚守下去肯定没有好结果……不想看到张士诚落个不好的下场,就派人进平江城游说,张士诚还是不投降。
至正二十七年(1367)九月,坚守十个月的平江终于再也防不住了,徐达攻破葑门,常遇春攻破阊门,朱元璋大军涌入。张士诚率两万残军同徐达、常遇春展开巷战,无奈手下将士纷纷投降,张士诚只好逃回去,和自己妻子刘氏说:我马上就要战败而死了,你们该怎么办?刘氏说我一定不辜负大王,下令把张士诚所有的姬妾都赶到齐云楼上,自己也上了楼,然后下边堆满干柴,让张士诚的养子辰宝一把火全烧了。张士诚把自己的姬妾都烧杀死完,关上房门,想要自杀而死,不幸的是朱元璋的兵来得太快,破门而入,把张士诚救下来,送往应天。
张士诚一路不吃不喝也不说话,到了应天,朱元璋派李善长问话,张士诚一言不发,李善长一遍一遍地问,张士诚终于开口了,不过不是回答李善长的问话,而是破口大骂,羞辱了李善长一顿,李善长大怒,上告朱元璋,朱元璋很欣赏张士诚的骨气,却也没法招降他,只得杀掉。