본관은 안동(安東). 자는 사회(思晦). 아버지는 부사 김상관(金尙寬)이며, 작은아버지인 좌의정 김상헌(金尙憲)의 양자로 들어갔다.
광해군 때는 벼슬에 뜻을 두지 않고 있다가 1627년(인조 5) 생원시에 합격하였다.
음서(蔭敍)로 세마(洗馬)가 되었으며, 병자호란 때 아버지를 따라 남한산성으로 인조를 호종하였다. 통진·교하의 현감 등 지방관을 역임하던 중, 아들 김수흥(金壽興)·김수항(金壽恒)이 출세하자 1661년(현종 2) 공조참의에 특별히 제수되었다.
뒤에 청풍군수·파주목사를 거쳐 동지중추부사(同知中樞府事)에 올랐다. 1637년 아버지 김상헌이 척화를 주장하며 자살을 기도하였을 때 적극 만류하지 않아 물의를 빚기도 하였다.