籍陵州（今四川仁寿），后徙居成都。宋仁宗景祐元年进士。由太常博士为监察御史，转任殿中侍御史，上书言事无所畏避，多次弹劾当朝权贵夏竦、陈执中、杨怀敏等，有直言的名声。后来因为中伤韩琦，声望有所下降。因为母亲年老，加直龙图阁，出知汉州，还京后判银台司。宋英宗治平末年，知梓州。后来改知永兴军及河南府。晚年年老多病，还在请求进用，被宋神宗鄙视。以尚书右丞致仕，去世时六十九岁。