太宗淳化三年进士，初授巩县主簿，改调定国军节度推官。真宗咸平年间举贤良方正，授着作佐郎，曾预修《册府元龟》，出京任定海知县，再迁太常丞。大中祥符六年（1013年）十一月，以右谏议大夫权知开封府。明道二年九月，代钱惟演任西京官职，服膺欧阳修。天禧四年因岳父寇准罢相，出知汝州。干兴元年，再贬郢州团练副使。景祐元年（1034年）加同平章事，不久卒。谥文康。着有《群牧故事》。