본관은 안동(安東). 자는 성로(星老). 호는 청악(靑岳). 아버지는 증좌찬성 김광위(金光煒)이며, 어머니는 죽산안씨이다.
1624년(인조 2) 사마시에 합격하고 1630년 별시에 병과로 급제, 성균관전적을 거쳐 지제교(知製敎)와 삼사(三司)의 직을 역임하였다. 1636년 병자호란 때 인조를 남한산성으로 호종하였다. 화의가 성립된 후 척화론자로서 고향에 돌아가 있다가 1640년에 괴산군수가 되었다.
1645년에 응교(應敎)를 거쳐 의주부윤을 지냈다. 1648년에 병조참의에 임명되고, 이듬 해 제주목사로 부임하였으나 탐관오리로 탄핵을 받아 영남에 유배되었다가, 이경석(李景奭)과 이시백(李時白)의 변호로 1658년(효종 9) 방환되었다.
1662년(현종 3) 풍덕부사(豊德府使)에 임명되었으나 부임하지 않았다. 1666년 여주목사에 임명되어 잠시 부임하였다가 벼슬을 내놓고 고향으로 돌아갔다. 시호는 충경(忠景)이다. 저서로는 『남악집(南岳集)』이 있다.