西晋河间(今河北献县东南)人。世贫贱,至长安,以勇力见用于河间王司马颙。太安二年(303),颙命为前锋讨齐王同,再讨长沙王又,攻入洛阳,杀又,大掠西还。次年,又劫惠帝归长安,官至中领军、录尚书事,领京兆太守。东海王越起兵,攻长安,颙惧而求和,恐他不从,遂杀之。