본관은 반남(潘南). 초명은 박상덕(朴相德), 자는 여수(汝壽). 할아버지는 도승지 박사정(朴師正)이고, 아버지는 진사 박흥원(朴興源)이며, 어머니는 종실(宗室)인 청릉군(靑陵君) 이모(李模)의 딸이다.
1746년(영조 22) 별시 문과에 병과로 급제하였다. 경기도도사(京畿道都事)를 거쳐, 사간원정언(司諫院正言)으로 있으면서 조정에 잘못이 있으면 반드시 이를 문제삼아 시정하도록 하였다. 그러나 인품이 순박해 자신을 내세우지 않아 임금의 뜻에 거슬려도 죄를 받지 않았다.
1751년에 동부승지(同副承旨)가 되고, 병조참의를 거쳐 황해도관찰사에 임명되었다. 부임하던 해에 그 지방에 흉년이 들자, 포목세(布木稅)를 줄이고 곡물세를 내지 않도록 조정에 상소해 허락을 얻어내자 백성들이 칭송하였다.
대사간을 거쳐 전라도관찰사로 있을 때, 제주목사 황최언(黃最彦)이 유배 죄인을 부드럽게 대했다고 견책당하자, 이에 항소한 일에 연좌되어 파직되었다. 그러다가 다시 대사헌으로 등용되었다. 1765년 이조판서가 된 뒤 18차례나 이조판서에 임명되었다. 항상 청탁을 수치로 여겼으며, 특히 인사에 공평해 임금의 신임을 받았다.
그리하여 “육관을 위해서 인재를 택하는 데 그대의 공평한 마음을 가상히 여긴다(爲官擇人嘉卿公心).”는 어필을 받기도 하였다. 당시의 상신(相臣)이던 김상철(金尙喆)로부터도 “본성이 청렴결백해 여러 번 인사권을 잡았는데도 사람들의 불평을 사지 않는다.”하여 공평무사하다는 평가를 받았다.
1774년 임금 생모의 신위를 모신 육상궁(毓祥宮)의 제사에 참예하지 않아 삭직되었다. 1776년 정조가 즉위하자 다시 등용되어 공조판서에 오르고, 이어 대사헌으로 수어사(守禦使)를 겸하다가 홍국영(洪國榮)에게 수어사의 직을 빼앗겼다.
이 때 홍국영의 무례함을 비판했는데, 이에 홍국영의 지시를 받은 언관들에 의해 벽파 홍인한(洪麟漢)·정후겸(鄭厚謙)의 당이라 하여 탄핵을 받았다. 그러자 삼사로부터 유배의 탄핵을 받았으나, 정조가 허락하지 않아 다만 재야로 쫓겨나게 되었다.
평소에 생활이 검소해, 여러 고관을 역임했지만 귀향할 때는 집을 세내어 살 정도로 궁색하였다. 이듬해 죽자 정조의 명으로 복관되었다. 특히 사학(史學)에 박식하였다. 시호는 효헌(孝憲)이다.