七岁所做〈函关赋〉，被传诵一时。早年游学陈州，受到当时学官苏辙厚爱，从学于苏轼，苏轼说他的文章类似苏辙，“汪洋淡泊，有一唱三叹之声”。神宗熙宁六年（1073年）中进士，熙宁七年任临淮主簿，元丰元年（1078年），爲寿安尉。元丰二年（1079年），在山阳见曾巩。元丰七年（1084年），迁咸平丞，元祐初年（1086年）授秘书省正字，元祐六年由苏轼力荐为着作郎，改秘书丞、再任着作郎，官至起居舍人。绍圣元年（1094），以疾出知润州（今江苏丹阳），八月，徙知宣州（今属安徽）。绍圣三年（1096年），管勾明道宫。