본관은 동복(同福). 자는 덕이(德而), 호는 수촌(水邨). 관찰사 오백령(吳百齡)의 증손으로, 할아버지는 관찰사 오단(吳端)이고, 아버지는 관찰사 오정원(吳挺垣)이다. 어머니는 좌참찬 윤의립(尹毅立)의 딸이다.
1648년(인조 26) 진사가 되고, 1656년(효종 7) 별시 문과에 병과로 급제해 6품에 승품, 가주서(假注書)가 되고, 정언(正言)·문학(文學)·지평(持平)·교리(校理)·이조정랑을 역임하였다.
1664년(현종 5) 사복시정(司僕寺正)이 되어 평안도암행어사로 다녀왔다. 이어 집의(執義)가 되어 낭선군(朗善君) 이우(李偊)의 강사영조(江舍營造: 강가에 정사를 지음)와 각 사찰에 대한 횡포를 고발하기도 하였다. 이어 응교(應敎)·사인(舍人)을 거쳐 1666년 중시 문과에 장원하였다.
예빈시정·승지를 거쳐 1670년 전라도관찰사로 부임해 전라도 지방의 기근의 참상을 고발하였다. 그리고 구황책으로 조적(糶糴)·전결(田結)·관노비·속오군(束伍軍)의 병기·염세목(鹽稅木)·군사 문제 등 9개 항목을 개진하였다.
특히 가장 큰 민폐인 납육(臘肉: 소금에 절인 돼지고기)의 진상 문제를 건의해 해결했고, 당해 연도의 신역(身役)을 줄이도록 건의하였다.
그 뒤 전라도 지방에 괴탄설(怪誕說)이 나돌아 추고도 당했으나, 벼슬은 승지·예조참의·이조참의·평안도관찰사를 거쳐 1674년 도승지가 되었다. 숙종이 즉위한 뒤 강화부유수를 거쳐 형조판서에 발탁되었다.
1675년(숙종 1) 총융사 김만기(金萬基) 등과 북한산성의 축성을 건의했고, 선왕 현종의 서거에 대한 청나라의 두 번째 조제사(弔祭使)가 왔을 때 원접사(遠接使)가 되어 이들을 맞이하였다.
이어 이조판서로 발탁되었고, 청나라 조제사들의 반송사(伴送使)가 되었다. 그 뒤 대사헌·우참찬을 거쳐 1676년 호조판서로 발탁되어 농사의 흉황을 역설했고, 특히 새로이 개간한 전지(田地)는 2년에 한해 수세하지 말도록 조처하였다. 이듬해 다시 대사헌·판의금부사·이조판서·예조판서를 지냈다.
1679년 우의정에 올라 말속악습(末俗惡習)인 괘서 금지 방안을 제시했고, 허적(許積)과 같이 전문(錢文)의 변통사를 역설하였다. 또한 정몽주(鄭夢周)의 화상을 모시는 가묘(家廟)를 지어 봉사하도록 하였다.
1680년 경신대출척(庚申大黜陟)으로 유배되었다가, 앞서 청나라 조제사가 왔을 때 왕에게 왕약신강설(王弱臣强說) 등 허위 보고를 했다는 이유로 탄핵받고 사사되었다.
1689년 기사환국 때 관직이 회복되고, 1694년 갑술옥사로 다시 관직을 추탈당했다가 1784년(정조 8) 신원 요청으로 다시 관직이 회복되었다. 저서로는 『수촌집』이 있다.