본관은 해평(海平). 자는 사의(士毅). 윤언명(尹彦明)의 증손으로, 할아버지는 윤득의(尹得義)이다. 아버지는 윤익동(尹益東)이며, 어머니는 이당(李𦼲)의 딸이다. 부인은 경주 이씨로 승지를 지낸 이광운(李光運)의 딸이다. 강화유수 윤승렬(尹承烈)의 종제이다.
1762년(영조 38) 성균관의 원점(圓點: 성균관의 유생들이 출석부에 점을 찍던 일) 유생들만을 시험하는 친림 제술에서 수석을 차지해, 직부전시(直赴殿試)의 혜택을 받아 식년 문과에 을과로 급제하였다. 뒤에 과격한 소를 올려 영조의 노여움을 사자, 원점 유생을 직부전시하는 규례를 폐지하였다. 승정원주서, 정언 등을 지냈다.
1765년 동래에서 일본 사신을 위한 접위관(接慰官)으로 파견되었다가 일이 어긋나 동래부사 송문재(宋文載)와 함께 탄핵되어 유배의 처벌을 받았으나, 고경차왜(告慶差倭: 일본 관백의 명을 받아 대마도주가 경사를 알리기 위해 파견한 사신)가 귀순해 석방되었다.
1766년 홍문록에 선발되어 홍문관교리·부수찬을 역임했으나, 왕명에 즉시 응하지 않은 죄로 삼수부에 유배되었다가 두 달 뒤 석방되었다. 다시 홍문관교리·수찬 등을 역임하고, 1770년 헌납으로 상소해 인사행정의 문란과 관원들에 대한 왕의 부당한 대접을 논했다가 왕으로부터 당습(黨習)이라는 질책과 폐서인(廢庶人: 서인으로 강등시킴)의 명을 받았다. 이 일로 홍봉한(洪鳳漢) 등의 탄핵을 받아 남해에 유배되었다.
1773년 부수찬 김약행(金若行)의 상소로 사면을 받고 관직에 서용되었다. 1776년(정조 즉위년) 이조좌랑으로 『열성어제(列聖御製)』의 편찬에 참가하였다. 다음 해 대사간이 되어 왕의 학문 면려와 조정의 기강 확립 등을 주청하였다. 사소한 일로 대사간 유당(柳戇)의 탄핵을 받아 추자도에 유배되었다. 1784년 서용되었고, 1797년에 한성부좌윤, 다음 해 공조판서에 임명되었다.