与泰山太守徐龛及彭城内史刘遐一同讨伐上一年反叛的彭城内史周抚，周抚败走并被徐龛部将于药斩杀。然而，徐龛不满朝廷论功时更后于刘遐，于是怒而叛变，并侵扰青州各郡。朝廷于是下诏命征虏将军羊鉴率鲜卑段文鸯、蔡豹、刘遐等出兵讨伐。太兴三年（320年），羊鉴顿兵下邳不前而蔡豹在檀丘击败徐龛并请求进军，但遭羊鉴阻止。徐龛败后向后赵请求援兵，后赵王石勒于是派了将领王伏都及张敬支援徐龛。不过，徐龛因受不住石勒多作要求和王伏都的淫乱暴行，就杀了王伏都向东晋请降。元帝这次就因厌恶徐龛反覆不定，于是不接受其投降，并命羊鉴和蔡豹