본관은 대구(大丘). 자는 계중(繼仲), 호는 귀천(歸泉)·동원(桐源). 남원부사 서정리(徐貞履)의 증손으로, 할아버지는 참찬 서문유(徐文𥙿)이고, 아버지는 이조판서 서종옥(徐宗玉)이며, 어머니는 이집(李㙫)의 딸이다.
1753년(영조 29) 생원이 되고, 1763년 증광 문과에 을과로 급제하였다. 곧 홍문관부교리(弘文館副校理)에 처음으로 제수되고, 다음날 왕의 특명에 의해서 교리가 되었다. 1764년 홍문관 관원들이 올린 소로 왕의 노여움을 사서 홍낙명(洪樂命) 등 8인과 함께 갑산부에 일시 유배되었다.
그러나 곧 재기용되어 사헌부지평(司憲府持平)·사간원헌납(司諫院獻納), 부교리·풍산만호(豊山萬戶)·홍문관응교(弘文館應敎) 등을 역임하였다. 1767년 지제교(知製敎)의 능력을 평가하는 시험에서 우등해 말을 하사받았고, 중시 문과에 병과로 급제하기도 하였다. 이 후 부교리·승지를 거쳐 1769년 강원도관찰사가 되었으나 삼촌이 피체되자 연루되어 체직당하였다. 이어서 이조참의·대사성·대사헌·승지·부제학을 역임하고 이조참판이 되었다.
1775년 일시 한직에 밀려났으나 세손의 대리청정을 반대하는 홍인한(洪麟漢) 일파를 탄핵, 세손의 대리청정을 시행할 수 있도록 크게 노력하였다. 이 때의 공으로 세손에 의해 발탁되어 예조판서·병조판서·이조판서 등의 요직을 역임하였다.
정조가 즉위하자 더욱 중용되어 수어사(守禦使)·총융사(摠戎使)를 겸임해 군사권까지 장악했고, 우참찬·판돈녕부사를 거쳐 1777년(정조 1) 우의정, 다음 해 좌의정, 그 다음 해 영의정에 임명되었다. 1780년 일시 한직에 물러났다가 곧 좌의정·영의정을 역임하였다. 1783년 판중추부사가 되었고, 1791년 영중추부사로 죽었다.
영조대 중반까지는 은인 자중해 크게 현달하지 못했으나, 영조 말년에는 세손의 대리청정을 위해 진력을 한 결과 정조에 의해 중용되었다. 처음 시호는 충헌(忠憲)이었으나, 정조가 뒤에 충문(忠文)으로 바꾸었다.