본관은 풍양(豊壤). 자는 덕여(德汝), 호는 일곡(日谷). 조상기(趙尙紀)의 증손으로, 할아버지는 조환(趙瑍)이고, 아버지는 서윤(庶尹) 조진명(趙鎭明)이다. 어머니는 이익진(李翼鎭)의 딸이다.
1789년(정조 13) 정시문과에 장원급제, 경기도도사·홍문관수찬을 거쳐 1801년(순조 1) 이후 예조참의·부산첨사·이조참의·형조참판 등을 지냈다. 1806년 형조참판으로 있을 때, 김대비 세력인 우의정 김달순(金達淳)이 연석(筵席)에서 저지른 사건을 탄핵, 처벌하게 함으로써 대과(大過)를 바로잡은 공이 있다 하여 이조참판에 오르고, 다시 병조판서에 특진되었다.
그 뒤 이조·예조의 판서를 거쳐 1808년 평안도관찰사 재직 때 평안도병사 이광익(李光益)과 의주부윤 윤익렬(尹益烈)의 비위를 지적, 논죄했으나, 같은 해 평안도암행어사 서능보(徐能輔)의 탄핵을 받아 그 자신이 부정, 포학한 지방장관으로 몰려 파직되었다. 그러나 이 때 어머니인 정부인(貞夫人) 김씨의 탄원 결과, 암행어사의 보고가 적실하지 못했음이 밝혀져 도리어 당시 부사과로 있던 서능보가 파직당하고, 그는 다시 복직되어 형조판서·대사헌을 역임하였다.
1812년 척신 박종경(朴宗慶)에 대한 비위 사실을 낱낱이 지적하면서 정사를 어지럽히고 있다는 내용의 상소문을 올렸다가 진도 금갑도(金甲島)에 유배되었다. 6년 뒤에야 특명으로 향리에 옮겨졌다가 1819년 여러 대신과 삼사 관원들의 청원으로 오랜 유배 생활에서 풀려 나왔다.
곧이어 형조판서에 임명되었으나 어머니의 상을 당한 것을 계기로 사임하고 관직을 떠났다. 뒤에 다시 좌·우빈객(左右賓客), 우참찬·대사헌·대호군 등에 임명된 일이 있다. 순조의 묘정에 배향되었으며, 시호는 문충(文忠)이다.