主簿。调孟州司法参军、泰宁军节度使掌书记，知莱芜、蒙阳、安丘县，擢升为知渠州。召入京，为编校史馆书籍，擢升为起居舍人、同知谏院，转吏部、礼部二部郎中，拜户部员外郎兼侍御史知杂事。在台谏多年，曾经上书请求裁汰滥官冗兵，禁奢靡，又多次上疏请皇太后曹氏还政于宋英宗。论大事无所顾忌，但是词气平和，所以建议多被采纳。后出知应天府，改任江宁府。宋神宗即位，除判吏部流内铨、太常寺，出知兖州，再判太常寺，留守南京。告老，由知青州提举亳州太清宫，以正议大夫致仕。着作有《东原录》、《周易补注》等。