初年参军
熙宁六年(1073),登进士甲科,调秀州司户参军,为汝州州学教授,移亳州。迁和州防御推官。元祐(1086-1094)初,历知金华、渑池县。绍圣四年(1097),为颍州郡王院、吴王宫大小学教授,知真州。建中靖国元年(1101),除提举河东路常平,留为开封府推官,迁工部员外郎,徙吏部,兼国史编修官。蔡京引为讲议司参详官,擢礼部侍郎。崇宁二年(1103),出知瀛州,历知河南府、苏州。
中年选书
以《哲宗实录》修成,迁朝奉大夫,移知潭州、洪州。五年,召为兵部侍郎。大观元年(1107),出知郑州,改应天府。四年,召还为工部侍郎。出使辽,使还,撰《见闻录》以进。政和(1111-1118)初,知定州,徙濠州。重和元年(1118),知江宁府,差充江南东路安抚使,以平方腊功迁龙图阁直学士,进延康殿学士。宣和五年(1123)卒,年七十。程俱称其:“以高明之姿,纯正之学,敏达之才,自经术、政事、文词、字画、养生之妙、方外之理,皆意出人上,自以无前,一时交游号为第一。”著有文集三十卷,今已佚。《全宋诗》卷一一四九录其诗二首。《全宋文》卷二六七四收其文四篇。事迹见程俱《王公行状》(《北山集》卷三四)、《京口耆旧传》卷二、《宋史》卷三四七本传。