본관은 풍산(豊山). 자는 효징(孝徵), 호는 학사(鶴沙) 또는 아헌(啞軒). 안동 출신. 할아버지는 장례원사의 김농(金農)이고, 아버지는 산음현감 김대현(金大賢)이며, 어머니는 수의부위(守義副尉) 이찬금(李纘金)의 딸이다.
17세 때 유성룡(柳成龍)을 사사했으며, 1613년(광해군 5)에 생원시에 합격하였다. 그러나 당시 광해군의 어지러운 정치를 보고 문과 응시를 포기하고 장현광(張顯光)의 문하에서 학문 연마에 힘썼다.
1623년에 인조가 즉위하자 알성 문과에 응시해 병과로 급제하였다. 형제 9명 중 5명이 문과에 급제하였다. 병조정랑·흥덕현감·선산부사 등을 역임하고, 1634년(인조 12)에 사직하고 낙향하였다. 그 후 다시 지평(持平)·장령(掌令)·헌납(獻納)·수찬(修撰)·교리(校理)·부수찬·집의(執義)·사간·응교(應敎)·승지·호군·공조참의·대사간·한성부우윤 등의 관직을 인조·효종·현종 삼대에 걸쳐 역임하였다.
1637년에는 청나라 사신이 빈번히 출입하자 접대비 염출을 위해 삼분모회록법(三分耗會錄法)을 제안해 이를 시행하게 하고, 그 뒤 필요없게 되자 1658년(효종 9)에 폐지하게 하였다.
1638년에 장령으로 있으면서 8조를 건의했는데, 그 중 하나가 ‘명대의(明大義)’로 사대교린의 외교 정책을 지지하고 절의를 고집하면서 교린을 가볍게 단절함을 비판하였다. 1651년(효종 2)에는 『대학연의(大學衍義)』의 강(講)을 마치고, 근래에 문교(文敎)가 전폐됨을 개탄하고 학문 권장을 건의하였다.
1656년에는 예조참의로 있으면서 마음을 닦아 본성을 기를 것, 하늘을 공경하고 백성들을 사랑할 것, 문(文)을 숭상해 학문을 일으킬 것을 건의하고, 1659년(현종 즉위년)에는 공조참의로 있으면서 임금으로서 행할 도리를 상소하였다.
1664년에는 금성산성(金城山城)의 군량미 문제로 예조판서 홍중보(洪重普)와 병조판서 김좌명(金佐明)의 탄핵을 받았다. 그러나 현종은 삼조(三朝)를 시종한 신하로 나이 80세이며 먼 영남의 집에 있는 점을 고려해 사면하였다.
문장에 능했으며, 안동의 물계서원(勿溪書院), 영천의 의산서원(義山書院)에 제향되었다. 저서로는 『학사집(鶴沙集)』·『사례문답(四禮問答)』·『산중록(山中錄)』·『변무록(辨誣錄)』 등이 있다.