任司法参军，与尹洙、苏舜钦、宋祁交游。景祐元年（1034）六月，举书判拔萃，改任大理寺丞。宝元元年（1038）前后通判阆州，以母丧丁忧，庆历元年（1041）左右迁殿中丞，差遣天长县事，以父丧服除，庆历年间为集贤校理。欧阳修称他“强学博览，无所不通”，与欧阳修、王安石与司马光都有交往。庆历四年（1044）十一月七日，因苏舜钦祠神会饮案谪守蔡州（今河南汝南）税。数年后起知奉符县（今山东泰安）。庆历八年（1048），改太常博士，通判睦州（今杭州淳安），后平调庐州（今安徽合肥）。皇祐三年前后复官集贤校理。皇祐五