上疏反对却不被接纳，于是愤而劝王恭讨伐司马尚之。在庾楷的策动下，庾楷、王恭、荆州刺史殷仲堪、广州刺史桓玄及南郡相杨佺期于隆安二年（398年）七月以讨伐司马尚之兄弟及王愉为名起兵。九月，司马道子委军事予儿子司马元显，以其为征讨都督，统领司马尚之、王珣和谢琰等人抵抗。司马尚之于是领兵进攻庾楷，先于慈湖击败庾楷将段方，后更在牛渚大败庾楷，令庾楷逃奔桓玄。及后司马道子便以司马尚之为建威将军、豫州刺史、假节镇历阳，代替庾楷。不过，桓玄与杨佺期率军从荆州到来，在白石大败朝廷军队，并进攻至横江，司马尚之唯有撤退。不过