본관은 양주(楊州). 자는 자장(子長), 호는 약천(藥泉). 조준수(趙俊秀)의 증손으로, 할아버지는 조남(趙擥)이고, 아버지는 지중추부사(知中樞府事) 조존성(趙存性)이며, 어머니는 이신충(李藎忠)의 딸이다. 신흠(申欽)의 사위로 숙부에게서 학문을 배우고, 뒤에 이항복(李恒福)의 문인이 되었다.
1616년(광해군 8) 진사시에 합격하고, 인조반정 후 의금부도사가 되었다. 1628년(인조 6) 별시문과에 을과로 급제, 정언을 거쳐 형조좌랑이 되었다. 1631년 일시 파직당하였다가, 그 뒤 1636년 병자호란 때 유장(儒將)으로 천거되기도 하였다.
사헌부장령(司憲府將令), 옥당의 수찬(修撰)·교리(校理)를 거쳐 사간이 되었다. 이 때 김상헌(金尙憲)이 탄핵당하자 이를 힘써 구원하였다.
1641년 세자시강원보덕으로서 볼모로 심양(瀋陽)에 갔던 소현세자(昭顯世子)가 청나라의 요구로 명나라의 진저우(錦州) 공격에 참가하게 되자 그를 시종, 모래주머니를 이용하여 성을 쌓는 기계(奇計)를 써서 세자 일행이 무사히 돌아오게 하는 데 큰 공을 세웠다.
심양에서 돌아와 수원부사·홍청감사(洪淸監司)·동부승지·예조참의·강화유수·도승지·경상감사 등을 거쳤다. 1654년(효종 5) 사은부사(謝恩副使)로 청나라에 다녀오고 경기감사·전라남도감사를 거쳐 1659년 함경감사, 형조와 공조 참판, 동지의금부사를 지냈다.
1662년(현종 3) 형조판서에 이르러 사직하고 보령에 은퇴하여 한가한 여생을 보냈다. 그뒤 조정으로부터 여러 차례 부름을 받았으나 나아가지 않았다. 만년에 민전(民田)을 광점(廣占)하였다는 비판도 받았다. 시호는 충정(忠靖)이다.