본관은 무안(務安). 자는 사강(士剛). 할아버지는 증 공조참의 박영기(朴榮基)이고, 아버지는 현감 박세렴(朴世廉)이며, 어머니는 영양 남씨(英陽南氏)로 남시준(南時俊)의 딸이다. 김언기(金彦璣)의 문인이며, 경사(經史)에도 밝았다.
1577년(선조 10) 무과에 급제해 주부(主簿)가 되고, 1588년 진해현감을 거쳐 1592년 임진왜란 때에는 경주판관이 되었다. 이 때 소속군사를 이끌고 병마절도사 이각(李珏)과 함께 동래성을 구하기 위해 달려갔다. 그러나 이각이 퇴각하자 비겁함을 준엄하게 꾸짖었다.
같은 해 7월에 이각이 처형되고 박진(朴晉)이 병마절도사로 파견되자, 장기군수 이수일(李守一)과 함께 박진을 도와 적에게 빼앗긴 경주성의 탈환 작전에서 화차(火車)와 비격진천뢰(飛擊震天雷)를 사용해 큰 성과를 거두었다.
1593년 4월에는 군사 300여 명을 거느리고 대구 파잠(巴岑)에서 왜적 2,000여 명과 맞서 수십 명의 목을 베고 수백 필의 말을 빼앗는 등 큰 전공을 세웠다.
5월에도 울산군수 김태허(金太虛)와 함께 울산의 적을 쳐서 50여 명을 베는 등 크게 이겼다. 그러한 공으로 당상관으로 특진되면서 경주부윤이 되었다.
7월에는 초산군(剿山郡)의 적을 쳐서 남문에서 전멸시켰다. 8월에는 왜병이 안강(安康)에 주둔한 명나라의 군사를 급습해 200명을 죽이자 병사 고언백(高彦伯)과 함께 적을 추격해 무찔렀다.
1594년 2월 양산의 적을 무찔렀고, 3월에는 임랑포(林浪浦)의 적이 언양현에 진입해 노략질하자 이를 급습해 무찔렀다. 이 때 적에게 잡혀 있던 백성 370명을 구해냈으며 우마 32필도 노획하였다. 5월에는 기장(機張)에서, 7월에는 경주에서 많은 왜병을 베었다.
1595년에 그 공으로 가선대부(嘉善大夫)로 품계가 오르고, 1597년 영천과 안강의 적을 무찔렀다. 이 때 1,000명의 병사를 거느리고 명군 5만 명의 뒷바라지를 했으며, 적군이 성을 비우고 밤에 도망치자 창고에 있던 곡식 400여 석을 거두었다.
1598년 박도산(薄島山)의 적을 쳐서 전승을 올려, 가의대부(嘉義大夫)로 품계가 오르고 말이 하사되었다. 1599년 성주목사 겸 방어사, 1600년 경상좌도병마절도사, 1601년 인동부사(仁同府使)를 두루 지내다가, 1602년 다시 경상좌병사 및 공홍도수사(公洪道水使)를 거쳐 경상수사가 되었다.
다섯 차례의 병사를 지내는 동안 한결같이 청렴하고 근신하였다. 호조판서에 추증되었다. 시호는 무의(武毅)이다. 영해의 정충사(貞忠祠)와 구봉정사(九峯精舍)에 제향되었다.