北宋太原(今属山西)人。累迁内殿崇班。曾入川镇压李顺等起义。建议减赋税安定民生。咸平三年(1000),任川峡路招安巡检使,参预镇压益州王均起义。屡领兵与契丹、西夏作战,献《御戎图》、《军仪条目》、《用将机宜要诀》等,对部署边事多有建明。以功任河西军节度使、知河阳。大中祥符中,坐事安置房州。仁宗时,徙滁州安置。后分司西京,给第居蔡州。卒年七十五。