본관은 창녕(昌寧). 자는 자허(子許). 황산도찰방(黃山道察訪) 성효관(成孝寬)의 증손으로, 할아버지는 대사간 성이문(成以文)이고, 아버지는 현령 성신구(成信耉)이며, 어머니는 유곤수(柳崑壽)의 딸이다.
1642년(인조 20) 사마시에 합격하였다. 1651년(효종 2) 식년 문과에 병과로 급제하여 가주서(假注書)·전적·함경도사를 거쳐 병조좌랑·사간원정언·경상도사를 지내고, 1656년 성균관사예(成均館司藝)에 올라 홍주목사로 내려가 크게 치적을 쌓았다.
사헌부장령(司憲府掌令)으로 있을 때 전지(田地)의 매매는 반드시 관서를 거쳐야 하며 노비의 경우도 같이 하도록 건의하여 마침내 영구히 제도화되게 하였다. 그 뒤 안동부사를 거쳐 1665년(현종 6)에 사간원헌납(司諫院獻納)·예빈시정(禮賓寺正)·영광군수를 지냈다.
이듬해 사성으로 사은사(謝恩使)의 서장관(書狀官)이 되어 청나라에 다녀온 뒤 사헌부집의(司憲府執義)·강계부사·의주부윤·우승지를 역임하였다.
1671년 수원부사로 나아가서는 부병(府兵)의 정원이 많고 호적에 있는 백성들이 계속 줄어들자 부병들 중 노약한 자를 가려내어 정예병들로 선발하게 하여 백성들의 부담을 덜어주는 등 선정을 베풀었다. 2년 후 파직되어 돌아와 곧 죽었으나 그 해에 관작이 복구되었다.