宣城内史桓彝驻芜湖，企图袭击韩晃，被击败，退保广德。咸和三年（328年）正月，苏峻进攻建康（今南京市）。韩晃于慈湖（今马鞍山慈湖）杀司马流，又勐攻兰石城，俞纵力战死。韩晃转攻桓彝，桓彝固守泾县近一年，力尽而死。咸和三年（328年）十月，苏峻被荆州刺史陶侃部将彭世等所杀。苏峻死后，军心大乱，成帝咸和四年（329年），晋军进击石头城。苏军全无斗志，一战即溃，苏峻之子苏硕在逃亡时被晋军斩杀，“惟（韩）晃独出，带两囊箭，却据胡床，弯弓射之，杀伤甚众。箭尽，乃斩之。”