宋朝初年河南府（今河南省洛阳市）人。宋真宗时参知政事。太平兴国三年（978年）中进士，为大理评事，通判吉州（治所在今江西省吉安市）。转任秘书丞，知汾州（治所在今山西省汾阳市），坐事除名。得吕蒙正援引，不久复职。端拱元年（988年）拜右正言、直史馆、判户部凭由司。端拱三年（991年），拜工部郎中、枢密直学士，知三班院。建议赦免黄河北部地区赋役，宋太宗采纳。淳化二年（991年）拜右谏议大夫、枢密副使，改同知枢密院事。淳化四年（993年）罢知秦州，经营大洛、小洛门寨，亲率兵巡视诸砦，以威信劝谕酋长，安抚羌戎，