본관은 풍양(豊壤). 자는 경서(景瑞). 조중운(趙仲耘)의 증손으로, 할아버지는 조도보(趙道輔)이고, 아버지는 조상기(趙尙紀)이다. 어머니는 임취(任㝡)의 딸이다.
1763년(영조 39) 증광문과에 을과로 급제하였다. 1767년에는 교리(校理)로서 재직할 때 과천(果川)의 남관왕묘(南關王廟)에 배알했고, 동묘(東廟)·남묘(南廟)에 제사를 올리고 용포(龍袍)를 새로 입혔는데, 이것은 관우(關羽)를 좋아하는 영조의 명을 받든 것이었다. 같은 해 부수찬(副修撰)·헌납(獻納)·부교리(副校理) 등을 역임하였다. 그러나 같은 해 임금의 독재를 비판하다가 영조의 진노를 사서 처벌되었다가 1768년에 풀려났다.
이듬해에는 필선(弼善)·응교(應敎)·집의(執義)·부교리 등을 지냈다. 1770년에 문학(文學)·교리·수찬(修撰)의 직책을 수행하였다. 그 뒤 이듬해 경기어사(京畿御史)로 파견되어 민정을 살폈으며, 광주부윤(廣州府尹)을 발령받아 외직에 근무하였다. 1774년에는 승지·대사성을 역임하였다.
1776년(정조 즉위)에는 당상관으로 승진하여 동지의금부사(同知義禁府事)· 부제학(副提學)·대사성을 역임하였다. 이듬해 남한어사(南漢御史) 정지검(鄭志儉)의 군량미 포탈 사건이 발생하여 전후 광주부윤이 모두 조사 대상이 되었는데, 이 때 그 역시 소환되어 조사받았을 뿐만 아니라 임명장도 반납하였다.
그 해 다시 함경감사(咸慶監司)로 발령되어 이듬해까지 그곳에서 근무하였다. 이 기간 동안 그는 왕명을 받들어 손상된 정릉(定陵)·화릉(和陵)의 문석(文石)과 장명대(長明臺)를 동갑(銅甲)을 둘러 보호했으며, 함흥 ↔ 정평 ↔ 철령 간의 봉수 체계 개선안을 제시하여 국방의 안정에도 주력하였다.
그러나 성진진(城津鎭)의 전패(殿牌 : 지방에 있는 임금의 상징물) 도난 사건의 책임을 지고 처벌받기도 하였다. 1799년 형조판서와 제학(提學)을 지냈다. 이듬해에는 강화부유수(江華府留守)를 역임했으며, 1781년에는 대사간을 역임하였다. 이듬해 홍충도관찰사(洪忠道觀察使: 충청도관찰사)를 지냈고, 1785년에는 판윤(判尹)·예조판서·호조판서를 역임하였다.
이듬해에는 규장각제학(奎章閣提學)을 지냈다. 동년 평안도관찰사(平安道觀察使)의 직책을 수행하면서 총수(葱秀)에 도착한 중국의 사신을 접견하기도 하였다. 1787년에는 호조판서를 역임하였다.