본관은 경주(慶州). 자는 백옥(伯玉), 호는 반고(盤皐). 좌의정 김명원(金命元)의 증손으로, 할아버지는 김수인(金守仁)이고, 아버지는 김남헌(金南獻)이며, 어머니는 사인(舍人) 권흔(權昕)의 딸이다.
1644년(인조 22) 정시 문과에 병과로 급제하여 이듬해 검열이 되었다.
1647년 지평(持平)이 된 뒤 문학(文學)·수찬(修撰)·부교리(副校理)·교리·집의(執義) 등을 거쳐, 1659년(효종 10)에 전라도관찰사가 되었다. 이때 이몽학(李夢鶴)의 당여로 오해받아 장살당한 김덕령(金德齡)의 신원(伸寃: 억울하게 입은 죄를 풀어줌)을 건의하였다. 1662년(현종 3) 승지를 지낸 뒤 경기좌균전사(京畿左均田使)로 파견되었으며, 1666년 사은부사로 청나라에 다녀와서 한성부좌윤·수원부사·호조참판 등을 지냈다.