본관은 동복(同福). 자는 두남(斗南), 호는 구사(龜沙). 직장 오세현(吳世賢)의 증손으로, 할아버지는 이조참판 오백령(吳百齡)이다. 아버지는 관찰사 오단(吳端)이며, 어머니는 병조참판 심액(沈詻)의 딸이다.
1627년(인조 5) 진사시에 합격하였다. 1636년, 당시 정권을 잡고 있던 서인들이 이이(李珥)와 성혼(成渾)을 문묘에 배향할 것을 추진하자, 성균관유생으로서 반대하는 상소를 주도하였다가 성균관에서 축출당하였다.
1639년 알성문과에 병과로 급제하여, 1643년부터 1646년 사이에 정언(正言)·헌납(獻納)·이조좌랑·사간·이조정랑 등을 거듭 역임하였다. 1645년 도당록(都堂錄)에 올랐으며, 1646년 문과중시에 병과로 급제한 뒤 집의(執義)·부응교(副應敎)·응교 등을 거쳐 1648년 승지에 이르렀다.
이어 황해도와 경기도의 관찰사 등을 지냈다. 1652년(효종 3) 매부인 인평대군(麟坪大君)을 집에 초대하여 잔치를 벌였을 때의 일을 빌미로 일어난 옥사에 연루되었으나 무고임이 밝혀졌다.
1655년 사은부사로 청나라에 다녀왔으며, 이듬해 도승지를 거쳐 1657년 이조참판·대사헌, 1659년 경기도관찰사를 지냈다. 1660년(현종 1) 도승지로서 『효종실록』의 편찬에 참여하였으며, 1663년 형조판서·판윤을 거쳐, 1670년 호조판서에 올랐다.