庆军判官，后任明州通判，又参与编修《中书条例》。熙宁四年（1071年）升任右正言、直舍人院。熙宁七年（1074年）任知制诰。曾奉旨与大军南下的辽国进行边界谈判有功，升知审官西院、直学士院、兵部尚书。元丰元年（1078年），进翰林学士，起居舍人兼侍读，代开封府尹。元丰二年（1079年）知礼部贡举，后来因遭弹劾被降职知蕲州，元丰五年（1082年）又以龙图阁待制知扬州、郓州，次年调任兵部侍郎，元丰八年（1085年）以龙图阁直学士知成都府。元祐三年（1088年）入京为翰林学士，升尚书右丞。后来第二次遭弹劾被降职为资