어려서부터 학문에 뛰어나 약관의 나이로 사마시에 합격하여생원이 되었으며, 1660년(현종 1)에 증광시(增廣試)에 병과로 급제하여승문원(承文院)에 들어갔다. 1664년(현종 5)에 김만균(金萬均)이 할머니의 원수인 청나라의 사신을 접대할 수 없다는 주장을 둘러싸고 이를 비판하는 서필원(徐必遠)과 옹호하는송시열(宋時烈)을 중심으로서인내부에서주1 · 사의(私義) 논쟁이 발생하였다. 이때 당시 정언(正言)으로 있으면서 서필원에게 동조하였다가 박세당(朴世堂)·오시수(吳始壽) 등과 함께 오사(五邪)로 낙인찍히고 주2되었으나 곧지평(持平)으로 제수되었다.
1666년(현종 7), 병자호란 당시 납치되었던 안추원(安秋元)이 도망쳐 나온 일로 청나라 사신에게 현종이 모욕을 당하였는데, 얼마 후 정지화(鄭知和), 민점(閔點)과 함께 동지사서장관(書狀官)으로 임명되어 일행을 엄하게 단속하여 후환이 없게 하라는 왕명(王命)을 받고 파견되었다. 무사히 임무를 완수하고 돌아와서는 모바일 슬롯 머신직(副司直)으로서, 백성을 아끼고 간언을 받아들이며 근검 절약을 요청하는 등 6개 조항에 대한 응지소(應旨疏)를 올려 마장(馬裝)을 하사받았다.
경신 대기근 속에서 1672년(현종 13)에 이선(李選)과 함께 충청도 수재순시어사(水災巡視御使)가 되어 백성을 주3하는 데 힘썼으며, 대궐의 전각 수리를 반대하고, 문무과 합격자 발표에 주4·주5·주6 등 사치스러운 행사를 금지하도록 요청하여 허락을 받았다. 숙종 대에 들어서 황해도관찰사와 춘천부사, 그리고 승지를 모바일 슬롯 머신하였다.
학자로서도 문명이 높았으며, 저서로는 『 구봉집(九峯集)』이 있다.