본관은 보성(寶城). 자는 근보(謹甫), 호는 추봉(楸峰). 서윤(庶尹) 오숙(吳潚)의 증손으로, 할아버지는 오필창(吳必昌)이고, 아버지는 증호조판서 오도명(吳道明)이다. 어머니는 채훈서(蔡勳瑞)의 딸이다.
1756년(영조 32) 식년문과에 병과로 급제하여 승문원정자가 되고, 1762년 숭릉별검(崇陵別檢), 1764년 전적(典籍)을 거쳐, 이듬해 예조좌랑에 올랐다. 1774년 병조정랑을 거쳐 장령(掌令)이 되어 돈녕부의 기강을 바로잡는 소를 올렸다.
이듬해 지평(持平), 통례원(通禮院)의 우통례, 장령을 두루 역임하였다. 1776년(정조 즉위년) 장령으로 대망(臺望)의 일을 맡았다가 이조판서 이중우(李重祐)의 탄핵을 받아 삭직되었으나, 다시 성균관사성 등을 역임하였다. 1780년에 군자감정을 거쳐 외직인 성환찰방을 지내다 사임하고, 청원군 낭성면 갈산리에 귀향하였다.
1783년 정언(正言)에 임명되었으나 사양하였다. 1787년 장령으로 있으면서, 기호 지방에 흉년이 들었으므로 구휼할 것을 상소하여 시행하도록 하였다. 1789년 통정대부(通政大夫)에 오르고 공조참의·돈녕도정(敦寧都正)을 역임하였다.
1790년 가선대부(嘉善大夫)에 오르고 한성부좌윤을 거쳐 1794년 자헌대부(資憲大夫)에 이르고, 지중추부사로 기로소(耆老所)에 들어갔다.