明帝派吴兴人沈桢去游说沈充,许诺让他当司空。沈充说:“三司是众人仰望的重任,岂是我能胜任的!礼厚言甜,正是古人所畏惧的。况且大丈夫共事,应该始终如一,怎能中途改变,那样的话天下谁还能容我!”于是发兵赶往建康。宗正卿虞潭因生病回到会稽,听说此事后,在余姚起兵讨伐沈充,明帝任命虞潭兼领会稽内史。前安东将军刘超、宣城内史钟雅都起兵讨伐沈充。义兴人周蹇杀死王敦任命的太守刘芳,平西将军祖约驱逐了王敦任命的淮南太守任台。
沈充率领一万多人与王含的军队会合,司马顾飏劝沈充说:“现在要干大事,但天子已经扼守住咽喉要地,我军锐气受挫,士气低落,相持日久,必然招致灾祸失败。现在如果决开栅塘,用玄武湖的水来淹灌京城,乘着水势,用水军发动攻击,这是上策;趁着刚到的锐气,合并东部(王含)和西部(沈充自己)军队的力量,分十路同时进攻,兵力对比超过官军一倍,按理必定能摧毁敌人,这是中策;转祸为福,召来钱凤议事,趁机杀了他向朝廷投降,这是下策。”沈充都没有采用,顾飏逃回吴地。
丁亥(七月十六日),刘遐、苏峻等率领一万精锐士兵到达建康,明帝夜间接见并慰劳他们,赏赐将士们各有差别。沈充、钱凤想趁北方部队刚到,疲乏困顿之际攻击他们,乙未(七月二十四日)夜,沈充、钱凤从竹格渚渡过秦淮河。护军将军应詹、建威将军赵胤等人抵抗,战斗不利,沈充、钱凤攻到宣阳门,拔除防御栅栏,正要进攻,刘遐、苏峻从南塘横向攻击,大败沈充、钱凤军队,跳水淹死的有三千人。刘遐又在青溪击败沈充。
寻阳太守周光听说王敦起兵,率领一千多人赶来。到达后,请求见王敦。王应以王敦病重为借口推辞。周光退出来说:“我远道而来却见不到他,王公难道已经死了吗!”急忙去见他的哥哥周抚说:“王公已经死了,哥哥你为什么还要和钱凤一起作贼!”众人都很惊愕。
丙申(七月二十五日),王含等人焚烧营垒,乘夜逃跑。丁酉(二十六日),明帝回到皇宫,大赦天下,唯有王敦的党羽不在赦免之列。命令庾亮督察苏峻等人追赶到吴兴讨伐沈充,温峤督察刘遐等人追赶到江宁讨伐王含、钱凤,分别命令各位将领追击他们的党羽。刘遐的部下军人纵容部下大肆虏掠,温峤责备他说:“天道帮助顺应天理的人,所以王含被剿灭,怎么能乘着混乱也作乱呢!”刘遐惶恐不安,叩拜谢罪。
王含想逃奔荆州(投靠王舒),王应说:“不如去江州(投靠王彬)。”王含说:“大将军(王敦)平日和江州关系怎么样,你却想投奔他?”王应说:“这正是应该去投奔他的原因。江州(王彬)在别人强盛的时候,敢于坚持不同立场,这不是常人能做到的,现在看到我们困厄,必定会有怜悯之心。荆州(王舒)遵守法度,岂能超出常规办事呢!”王含不听,于是逃奔荆州。王舒派军队迎接他们,将王含父子沉入长江淹死。王彬听说王应要求,秘密准备了船只等候;王应没来,王彬深感遗憾。钱凤逃到阖庐洲,周光将他斩首,自己到朝廷请求赎罪。沈充逃跑迷了路,误入旧部将吴儒家。吴儒诱骗沈充进入夹墙内,笑着对沈充说:“我可以得到三千户侯的封赏了!”沈充说:“你如果凭义气保全我,我家必定厚厚地报答你。你如果为了利益杀我,我死了,你的家族也会灭绝。”吴儒于是杀了他,将首级传送到建康。王敦的党羽全部被平定。沈充的儿子沈劲应当连坐被诛杀,同乡钱举把他藏了起来,得以幸免;后来沈劲果然灭绝了吴氏全家。
有关部门挖开王敦的坟墓,拖出尸体,烧毁他的衣冠,让他跪着然后斩首。将他的头和沈充的头一同悬挂在南桁(朱雀桁)上示众。郗鉴对明帝说:“前朝诛杀杨骏等人,都是先施加官刑(极刑),然后才允许家属收葬。臣认为帝王的诛罚执行于上,私人的情义施行于下,应该允许王敦家属收葬,在道义上更显宽弘。”明帝同意了。司徒王导等人都因为讨伐王敦的功劳受到封赏。
周抚和邓岳一起逃亡,周光想资助他的哥哥并捉拿邓岳。周抚发怒说:“我和邓岳一同逃亡,你为什么不先杀我!”正好邓岳到来,周抚出门远远地对他说:“你还不快走!现在连骨肉亲人都还想加害,何况是别人呢!”邓岳调转船头逃走,与周抚一起逃入西阳蛮中。第二年,皇帝下诏赦免王敦的党羽,周抚、邓岳出来自首,得以免去死罪,但被禁锢(禁止做官)。
原吴国内史张茂的妻子陆氏,倾尽家产,率领张茂的部下作为先锋讨伐沈充,为她的丈夫报仇。沈充失败后,陆氏到朝廷上书,为张茂未能克敌承担责任(谢罪);朝廷下诏追赠张茂为太仆。
有关部门上奏:“王彬等人是王敦的亲族,都应当除名(革职)。”明帝下诏说:“司徒王导大义灭亲,尚且要宽恕他的百代子孙,何况王彬等都是王导的近亲呢!”全部不予追究。
有诏书说:“王敦的主要属官(纲纪)除名,僚属(参佐)禁锢。”温峤上疏说:“