본관은 창녕(昌寧). 자는 돈오(惇五). 성재순(成載淳)의 아들이다.
일찍이 생원과에 합격하고, 1852년(철종 3) 식년문과에 병과로 급제하였다.
1855년 도당록(都堂錄)에 오르고 1857년 전라우도암행어사로 임명되었고, 이어 홍문관부교리를 지냈다. 1864년(고종 1) 남양부사(南陽府使)를 거쳐 이듬해에 성균관대사성을 지내고 1866년 이조참의를 거쳐 사간원대사간을 역임하였다.
1872년 사은부사(謝恩副使)가 되어 정사 박규수(朴珪壽), 서장관 강문형(姜文馨)과 함께 청나라에 다녀왔다. 1873년 충청도관찰사가 되어 세정(稅政)을 바로잡고 재해민을 구제하는 등 민정을 잘 보살폈으며, 1876년 이조참판, 1882년 예방승지를 거쳐 예조판서에 올랐다.
이어 한성부판윤·형조판서를 역임하고, 이듬해 동지 겸 사은정사(冬至兼謝恩正使)가 되어 부사 박정양(朴定陽)과 같이 청나라에 다녀왔다. 1885년 사헌부대사헌을 지내고, 1888년에는 자경전(慈慶殿) 상량의 현판에 서사관(書寫官)이 되었다. 시호는 정헌(貞憲)이다.