본관은 반남(潘南). 자는 사행(士行), 호는 만휴당(萬休堂) · 존성재(存誠齋). 할아버지는 참판 박정(朴炡)이고, 아버지는 우승지 박세견(朴世堅)이며, 어머니는 판관 최곤(崔滾)의 딸이다.
1654년(효종 5) 진사가 되고 1671년(현종 12) 정시 문과에 장원하였다. 병조좌랑 · 사헌부지평(司憲府持平) · 홍문관교리(弘文館校理) 등을 거쳐, 북평사(北評事)로 나가 변읍(邊邑)에 사는 병민(兵民)들의 오래된 폐단을 시정했다. 1674년 이조좌랑이 되고, 이듬해 남인의 득세로 상주목사 · 함경도 암행어사를 거쳐 홍주목사로 나가 진휼에 힘썼다.
1678년(숙종 4) 군자감(軍資監)과 예빈시정(禮賓寺正)을 지냈다. 1680년 경신대출척(庚申大黜陟) 때 남인의 실각으로 이조참의 · 형조참의에 이어 대사간을 거쳐 이듬해 다시 이조참의가 되었으나, 붕당 조성이 싫어 여러 차례 사직소를 올렸다.
그 뒤 호조참의 · 대사성 · 평안도관찰사를 지내는 동안 공평무사한 선정을 베풀었다. 1689년 동지중추부사(同知中樞府事) · 호조참판 등에 제수되었으나 사양하고 조위사(弔慰使)로 청나라에 다녀와서 여러 번 병을 핑계로 고향에 내려가 아버지를 모시려 하였다.
1694년 갑술옥사 이후 다시 이조참판 겸 동지의금(吏曹參判兼同知義禁) · 홍문관제학(弘文館提學) · 세자우빈객(世子右賓客)을 거쳐 양관대제학(兩舘大提學)으로 중궁 복위의 옥책문(玉冊文)을 지어 올렸다. 우참찬 겸 동지경연춘추관을 거쳐 예조판서 겸 지의금부로 서원의 지나친 설치의 폐를 지적하기도 했다.
1696년 이조판서로 있다가 지병으로 사직하였다. 인품이 담박하고 속되지 않아 요직을 여러 번 지냈으나 항상 가난했고, 인재 등용에 공도(公道)를 철저히 실천하였다. 출신은 서인에 해당되나 당을 갈라 정치 활동을 하는 것을 싫어해 남인이 정권을 잡고 있을 때에도 다른 서인들에 비해 관로(官路)가 무난한 편이었다. 시호는 문효(文孝)이다.