邵州邵武（今福建省邵武县）人。上官凝次子。神宗熙宁三年（1070年）进士，苏轼阅卷，拟之为第一（状元），因其策论诋毁王安石变法，改第二。历官北京大名府留守推官、监察御史里行，元丰年间，揭发法官窦莘收受富人之贿，判其子杀人无罪，莘因而下狱。哲宗初年为监察御史，后官给事中、龙图阁待制，以敢言闻名。着有《曲礼讲义》二卷、《广陵文集》五十卷等。有子上官怡。