元至正二十六(元1366年)八月初四,徐达、常遇春率军从龙江动身,声称直捣张士诚的国都平江。
八月十二,朱元璋戎行行至太湖。
八月二十,常遇春在湖州港口遇上一股张士诚戎行,将其打败,生擒其部将尹义、陈旺,所以停驻于太湖洞庭山。
八月二十四,朱元璋戎行来到太湖东边的毗山,打败张士诚部将石清、汪海,将其生擒。尔后,张士诚戎行停靠于湖上,不敢再出来迎战。
熊天瑞瞅准时机,跑到张士诚的地盘,叛降于张士诚,将朱元璋戎行将直捣平江的错误信息带给张士诚,致使张士诚不敢倾尽全力救援湖州。
八月二十五,朱元璋戎行抵达湖州的三里桥,张士诚的湖州守将右丞张天骐兵分三路进行抵御,“参政黄宝当南路,院判陶子实当中路”(《明太祖实录》),张天骐亲身带领北路军,同佥唐杰带领后续部队。
徐达派常遇春进犯黄宝,王弼进犯张天骐,自己带领中路军进犯陶院判, “别遣骁将王国宝率蛇矛军直扼其城”(《明太祖实录》)。
与常遇春交兵后,黄宝战胜想退回城内,但是城下吊桥已断,无法进城,不得不接着与常遇春力战,成果战胜被擒。
张天骐、陶子实不敢恋战,带兵撤入城内。张士诚匆促派司徒李伯昇前来救援,从城东的荻港进入湖州城。
徐达率军围住湖州城。
李伯昇、张天骐封闭城门,据守城内。
徐达派王国宝猛攻南门,自己率主力继后,张士诚的部将余德全、张德义、陶子实出来应战,悉数战胜。
张士诚又派平章朱暹、王晟、同佥戴茂、吕珍,院判李茂和他的养子五太子带领声称三十万大军援助,实际上带来的军力只要六万。他们屯驻于湖州城东面的旧馆,构筑五寨坚守,与湖州守军遥遥相对。
朱元璋派汤和从常州赶来,助力攻城。
徐达、常遇春、汤和分兵占据东阡镇南的姑嫂桥,构筑工事,阻绝旧馆与平江间的通道,“连筑十垒,以绝旧馆之援”(《明太祖实录》)。
张士诚的部将李茂、唐杰、李成被朱元璋戎行的气势震撼,惧战逃走。张士诚的女婿潘元绍其时屯兵于乌镇的东边,援助吕珍等人。
朱元璋戎行趁夜突袭,潘元绍匆忙逃走,徐达所以派兵“填塞沟港”(《明太祖实录》),堵截湖州的粮道。
自此,湖州、旧馆均堕入孤立无助的地步。
张士诚深知事态紧迫,赶忙亲身率兵救援,徐达等人于张士诚交兵于皂林之野,将其打败,生擒戴元帅,捉拿甲士三千余人。
湖州成为一座孤城。
九月十二,张士诚又派同佥徐志坚,率轻舟驶出东阡镇,侦查朱元璋戎行的意向,想进犯嫂桥,与常遇春撞个正着,两边交兵。其时风雨高文,天空晦暗,常遇春令勇士驾舟突击,再次打败张士诚戎行,生擒徐志坚,捉拿其部众两千余人。
为了控制张士诚的军力,使张士诚戎行在湖州、杭州间捉襟见肘、疲于奔命,九月十六,朱元璋令李文忠带兵进犯杭州,“今命尔攻杭州,是掣制之也,我师或冲其东或击其西,使彼疲”(《明太祖实录》)。
徐志坚战胜后,张士诚又派右丞徐义到旧馆调查局势,但是常遇春率兵阻断其归路,徐义骑虎难下,所以私自派人给张士诚的弟弟张士信送信,约他一同出动戎行,与旧馆的军力一同进犯朱元璋戎行。
收到音讯后,张士诚又把赤龙船亲兵派来相救,徐义逃脱后与潘元绍一同屯兵于平望,很快又抛弃赤龙船,改乘小舟,潜行至乌镇,计划援助旧馆。
常遇春从别港一路追袭,追到平望后,纵火烧了赤龙船,军资器械全被焚毁,徐义、潘元绍所率舟师登时慌张,四处逃散。