1583년(선조 16) 무과에 급제, 훈련원의 벼슬을 거쳐 1586년 소농보권관(小農堡權管)이 되었다가 남병사 신각(申恪)의 막하로 들어갔다. 1590년 선전관이 되고, 다음 해 장기현감으로 발탁되었다.
1592년 임진왜란이 일어나자 의병을 일으켜 분전했으나 예천 · 용궁에서 패전하였다. 다음 해 밀양부사로 승진, 이어 경상좌도수군절도사에 발탁되고 왜적을 격퇴한 공으로 가선대부에 올랐다.
그 뒤 회령부사에 이어 1597년 나주목사에 임명되었으나 부임하지 않았다. 정유재란이 일어나자 지역의 중요성을 감안한 도체찰사 이원익(李元翼)의 요청으로 성주목사가 되었으나 명령을 어겨 장형(杖刑)을 받고 종군하였다. 1599년 북도방어사가 되었다가 곧 북도병마절도사로 자리를 옮겼다.
1602년 남도병마절도사가 되어 변방을 침범하는 야인들의 소굴을 소탕했으며, 다음 해 경상우도병마절도사가 되어 창원에 있는 병영을 진주로 옮기도록 하였다.
1606년 길주목사로 방어사를 겸하고, 다음 해 수원부사에 이어 다시 북도병마절도사가 되고, 1611년(광해군 3) 지중추부사로 지훈련포도대장 · 원유제조(園囿提調)를 겸하였다.
1612년 평안도병마절도사가 되었다가 1614년 임기를 마치고 다시 지중추부사가 되었으며, 1616년 숭정대부에 올랐다. 1624년(인조 2) 이괄(李适)이 반란을 일으키자 평안도병마절도사로 부원수를 겸해 길마재[鞍峴]에서 반란군을 무찔러 서울을 수복한 공으로 진무공신(振武功臣) 2등에 책록되고, 계림부원군(鷄林府院君)에 봉해졌다.
1628년 형조판서가 되고, 1631년 남한수어사(南漢守禦使)에 임명되었으나 사양하고 나가지 않았다. 1632년 사망하자 좌의정에 추증되었다. 시호는 충무(忠武)이다.