少时求学于江西,历时五年始归,为古文数十篇,人称赏之。庆历六年(1046)进士,调嘉兴主簿,擢上虞令,除密州推官。治平(1064-1067)中,入为国子监直讲,迁秘书省著作佐郎,历馆阁校勘、集贤校理、史馆检讨,知太常礼院。元丰元年(1078),为国史院编修官,修起居注。明年,知制诰,同修国史,兼判太常寺。五年,迁龙图阁直学士,知开封府。改兵部尚书,转户部尚书。元祐二年(1087),拜中大夫、尚书右丞。三年,迁左丞。出知蔡州,移扬州。召为吏部尚书,复出知大名府,改杭州。绍圣初,以右正议大夫致仕。建中靖国元年(1101)卒,年七十九。