北宋成都华阳(今四川成都)人,字子功。第进士,又举才识兼茂科。熙宁七年(1074),累迁知谏院,反对手实法,因治狱与执政意见不合,贬监宿州酒税。元丰末,为起居郎。哲宗立,累进翰林学士。以龙图阁学士知开封府,勤于政事。元佑七年(1092),拜中书侍郎。次年,罢知河中府。