본관은 밀양(密陽). 자는 형성(衡聖), 호는 귀암(歸庵). 박희남(朴希男)의 증손으로, 할아버지는 박정(朴筳)이고, 아버지는 목사(牧使) 박시경(朴時璟)이며, 어머니는 부사 김인량(金寅亮)의 딸이다.
1686년(숙종 12) 별시 문과에 병과로 급제해 성균관전적(成均館典籍)이 되었다. 윤하제(尹夏濟)·조사기(趙嗣基) 등의 잘못을 소로 통박했다가 도리어 평산(平山)에 유배되었다. 1692년(숙종 18)에 풀려나 고향에서 은거하다가 1694년 갑술옥사로 다시 서용되어 병조좌랑이 되었다. 이어 정언(正言)이 되어 장희재(張希載)를 정법(正法)대로 처리할 것과 영의정 남구만(南九萬)을 공격한 유생들의 정거(停擧: 과거 응시 자격을 박탈하는 것)를 완화해줄 것을 상소했다가 다시 체직되었다. 곧 다시 서용되어 부수찬·교리를 거쳐 서장관으로 청나라에 다녀온 뒤 삼사의 여러 직을 역임하였다.
이어 1697년 외직으로 나갔다가 이듬해 파직당하였다. 이어 예조참의가 되어 과장(科場)의 폐습을 일소해보려고 상소했다가 구설에 휘말려 인천부사로 좌천되었다. 그 뒤 황해·영남의 감사를 거쳐 이조참의 때 교리 박필명(朴弼明)의 탄핵을 받고 은거하였다. 대사간 등의 여러 벼슬을 제수받았으나 모두 나가지 않다가 경기감사·강화유수(江華留守) 등에 나갔다가 곧 돌아왔다.
1711년 사은부사(謝恩副使)로 청나라에 다녀온 뒤 이듬해 한성우윤이 되었다. 그의 재임시 조·청 두 나라의 국경을 확정하고 그 증거로서 정계비(定界碑)를 세웠다. 그 뒤 병조참판·동지의금부사(同知義禁府事)를 거쳐 호조와 공조를 제외한 4조의 판서를 역임하였다.
사람됨이 굳세고 과감해 별로 친히 지내는 사람이 없이 사람들로부터 외경(畏敬)의 대상이 되었다. 그러나 나라에 큰 일이 있을 때는 언제나 부름을 받았고 또 맡은 일도 잘 처리하였다.