1660년(현종 1) 진사가 되고, 1662년주1문과에 을과로 급제, 승문원의 관직과 주서 등을 거쳤다. 1666년사관(史官)인 검열이 되고, 이어 봉교 · 겸설서로 승진하였다.
사관으로 있을 때인 1667년 왕이 지난해에정태화(鄭太和) · 홍명하(洪命夏) · 허적(許積)을 탄핵한이숙(李䎘) · 박증휘(朴增煇)등 7명의간관을 유배보내면서 사관들에게 이를사초(史草)에 기록하지 말도록 명했으나, 왕의주2은 반드시 기록해야 하는 것이라며 거절하고 이를 사초에 기록하였다. 이 일로 왕의 노여움을 사서 파직당했으나, 파직의 왕명이 곧 철회됨으로써 복직되었다.
그 뒤 전적 · 정언 · 사서 · 지평 등을 거쳐 1672년 말에 접위관(接慰官)이 되어동래에서 왜인을 접대하였다. 그 뒤 부교리 · 헌납 · 이조정랑 등을 거쳐 통정대부(通政大夫)로 승진하였다. 1675년(숙종 1)에수원부사를 거쳐 이후황해도관찰사 · 예조참의 · 승지 ·강원도관찰사 ·충청도수사 ·경기도관찰사 · 이조참판 겸 수어사(守禦使) · 지중추부사 등을 역임하고, 1680년 예조판서가 되었다. 이어 카지노 민회장헌 · 호조판서 ·강화유수 · 병조판서 · 판의금부사 · 우참찬 · 좌참찬 · 이조판서 등을 거쳐 1687년에 우의정이 되었다. 그 사이 1683년동지사(冬至使)로 주3에 다녀오기도 하였다.
1688년 좌의정이 되었는데, 이 때인조의 손자인메이저 바카라C774의 횡포를 논하다가 처벌된박세채(朴世采), 남구만(南九萬)등을 변호하여 왕의 노여움을 사게 되자 병을 핑계로 사직하였다. 다음해 판돈녕부사가 되었고, 이어 영돈녕부사가 되었으나, 1691년 전 해에 있었던 왕세자책봉하례에 참석하지 않은 죄로고성(固城)에 유배되어 배소에서 죽었다. 죽은 뒤인 1694년갑술환국으로 복관되었다.시호는 충헌(忠憲)이다.