北宋常州晋陵(今江苏常州)人,字完夫。嘉右进士。累官同知谏院,反对王安石用李定为御史,出通判真州。历河东提刑、中书舍人、御史中丞。时更定役法,以为法贵统一,请悉删除依违于差、募之间者。元右三年(1088),哲宗问朋党之弊,进《君子无党论》,建议用中立之士,则朋党自消,拜尚书右丞。次年,出知陈州。