北宋汾州孝义(今属山西)人,字之斡。后周时,为郭崇幕僚。入宋,历任郓、齐观察判官、知光州。乾德六年(968)移知彭州,平定州卒叛乱。太平兴国初,迁起居舍人,出使契丹,善应对,坚拒辽主之邀留。使还,知成都府,罢榷酤,免岁输铜钱。入知开封府,为御史中丞。雍熙三年(986),为参知政事,淳化二年(991),罢政。