1589년(선조 22) 사마시에 합격하고, 1592년 임진왜란이 일어나자 의병을 모아 왜적을 토벌해 많은 전과를 올렸으며, 김응남(金應南)의 추천으로 연원도 찰방(連原道察訪)이 되었다.
1599년 예빈시직장(禮賓寺直長)으로 전임되었으나 나가지 않았고, 1603년 식년 문과에 병과로 급제해 1607년 전적 · 예조좌랑과 정랑을 거쳐, 1611년 울산판관이 되어 고을 백성들의 교화에 힘썼다.
다음해 전라도도사가 되었으나 광해군의 실정으로 벼슬을 단념하고 정경세(鄭經世) · 이준(李埈) 등과 산수를 유람해 세칭 상사(商社)의 삼로(三老)라 일컬어졌다. 1623년(인조 1) 인조반정으로 새 왕이 등위하자 예조정랑에 이어 수찬 · 교리가 되어 경연(經筵)에 참석하였다.
1624년 이괄(李适)의 난이 일어나자 태복시정(太僕寺正)이 되어 왕을 호종(扈從), 천안에 이르러 집의가 되었으며, 연평군(延平君) 이귀(李貴)와 원수 장만(張晩)의 실책을 논하였다. 이어 병조참의 · 병조참지에 승진했으나 나가지 않고 고향에 돌아갔다.
그 뒤 대사간 · 부제학에 임명되었으나 모두 사퇴하였다. 1636년 병자호란이 일어나자 의병을 일으켜 적을 방어하였고, 왕이 도성으로 돌아오자 부제학에 임명되었다. 그 뒤 예조참의와 예조참판에 임명되고 가선대부(嘉善大夫)에 승계(陞階)했으나 사양하였다.
1638년 대사간 · 대사헌을 거쳐 예조참판 · 대사성이 되었다. 왕이 순검사에 명해 하삼도의 수군을 정비하게 하였으나 적절한 시책이 아니라고 반대하였다. 1642년 자헌대부(資憲大夫)의 품계에 오르고 지중추부사 겸 동지경연춘추관사(知中樞府事兼同知經筵春秋館事)에 임명되었다.
그 뒤 재차 대사헌에 임명되었으나 취임하지 않았다. 좌의정에 추증되었으며, 상주 백옥동서원(白玉洞書院)에 제향되었다. 시호는 충간(忠簡)이다.