본관은 청송(靑松). 자는 사상(士常), 호는 기기재(頎頎齋). 공주 출신. 심속(沈涑)의 증손으로, 할아버지는 장령(掌令) 심태현(沈宅賢)이고, 아버지는 영천군수 심구(沈銶)이다. 어머니는 권탁(權擢)의 딸이다.
1771년(영조 47) 정시문과에 병과로 급제하여 부정자(副正字)로 기용되었으며, 주서(注書)·정언(正言)·병조정랑·부수찬 겸 시강원문학 등을 역임하였다. 1776년(정조 즉위) 수찬(修撰)·교리(校理)가 되었고 이듬해에 감시어사(監市御史)로서 관북지방의 재해상태를 감찰하여 대책을 마련하게 하였다.
다시 수찬·이조좌랑·검상(檢詳)·지평(持平)·이조정랑 등을 거쳐 1780년 이조참의, 1782년 대사간으로 활동하였다. 그뒤 대사성·이조참판·대사간·부제학 등을 역임하면서 삼사 언론의 개방을 상소하고, 도승지를 거쳐 홍충도(洪忠道: 충청도의 당시 명칭)의 관찰사로 나갔다가 도내의 소요사건으로 1785년 파직당하였다.
다시 이조참판·대사성·대사헌·도승지 등을 거쳐 예조참판이 되었으나 문효세자(文孝世子)의 조제(弔祭: 상례를 치르고 제사함)를 주관하던 중 규례를 그르쳐 파직되었다. 1787년 가례도감제조·도승지를 거쳐 1788년 예조판서가 되었다.
이 때 서원남설의 폐단을 지적하다 유배된 조덕린(趙德麟)·황익재(黃翼再) 등을 용서하는 데 반대하다가, 뜻이 관철되지 않자 사직하였다. 그 뒤 병을 얻어 고생하던 중 왕의 특명으로 예조판서·도총관판율 등에 임명되었으나 노론 벽파의 입장을 지켜, 남인을 등용하는 조정에 출사하지 않았다.