본관은 풍산(豊山). 자는 정수(廷叟), 호는 둔곡(遁谷). 공조참판 김양진(金楊震)의 증손으로, 할아버지는 김순정(金順貞)이고, 아버지는 장령 김진(金鎭)이며, 어머니는 정세신(鄭世臣)의 딸이다.
1602년(선조 35) 별시 문과에 장원으로 급제한 뒤, 정언(正言)·사서(司書) 등을 거쳐 문학(文學0}})에 재임 중 춘추관기사관(春秋館記事官)을 겸해 임진왜란으로 불탄 사고의 정비에 참여하였다. 그 뒤 헌납(獻納)·전적(典籍)·예조정랑 등을 지낸 뒤 홍원현감으로 외직에 나갔다.
1610년(광해군 2) 호분위부사직(虎賁衛副司直)으로 『선조실록(宣祖實錄)』의 편찬에 참여했으며, 수찬(修撰)으로 유영경(柳永慶)을 탄핵하는 언론 활동을 행사하기도 하였다. 이어 장령(掌令)·검상(檢詳) 등을 지낸 뒤 정주목사로 나가 선정을 베풀었다.
1619년 사은부사(謝恩副使)로 명나라에 다녀와서 승지(承旨)가 되었으며, 인조반정 이후 우부승지·호조참의 등을 거쳐 대사간에 임명되었다.
곧 대사헌으로 전직되었다가 의정부에서 이조판서 이귀(李貴)와 서로 언쟁을 벌인 일이 화근이 되어 이후 계속 대립하였다. 그 뒤 도승지·이조참판·대사간·사헌 등을 번갈아 역임하였다.
1636년(인조 14) 병자호란으로 인조와 신하들이 남한산성에서 청나라 군사에 의해 포위되어 항복을 강요당할 때 이에 반대하고 끝까지 싸울 것을 주장하였다.
최명길(崔鳴吉) 등 주화파의 주장으로 화의 국서가 작성될 때도 척화를 끝까지 내세웠으며, 인조와 조신들이 모두 항복할 때도 연로하다는 이유로 호종하지 않아 척화의 의지를 분명히 했다.
1644년 예조참판으로 재직 중 나이가 80세라고 해 자헌대부(資憲大夫)에 가자(加資)되고 우참찬에 올랐다. 시호는 정헌(靖憲)이다.