殷仲堪、豫州刺史庾楷及广州刺史桓玄等以讨伐王瑜及司马尚之兄弟为名举兵，司马道子在儿子司马元显主战之下决定将军事交由司马元显处理，并派兵抵抗，谢琰亦获假节、都督前锋军事，与王珣等领兵讨伐王恭。不久司马尚之大败给桓玄，谢琰驻屯宣阳门作守备。司马元显成功策反刘牢之并让他击败并俘获王恭后，在建康处死王恭；而桓玄等知道王恭死讯亦停止进攻。谢琰在不久迁徐州刺史。隆安三年（399年），在上一年逃入海中的叛民领袖孙恩卷土重来，更攻克会稽（今浙江绍兴），杀内史王凝之，吴国、临海及义兴三郡太守弃郡逃走，于是以上四郡及吴兴、