1669년(현종 10) 사마시에 합격, 1675년(숙종 1) 유생들과 더불어자의대비(慈懿大妃)복상 문제로송시열(宋時烈)이 유배되자 이의 부당함을 상소하였다. 1681년 식년 문과에 을과로 급제해, 승문원정자(承文院正字) ·전적(典籍) · 지평(持平)을 거쳤다.
1686년정언(正言)이 되어 궁가(宮家)에서 저수지를 만든다는 구실로 민전(民田)을 침해하고 있음을 상소하였다. 그 뒤 예조좌랑 · 병조좌랑을 역임하고, 1689년홍문록(弘文錄) · 도당록(都堂錄)에 올랐다. 그 해 기사환국으로남인이 집권하자 사직했는데, 일찍이 송시열과 함께 유배된이상(李翔)을 변호한 일로 평안도의 철산(鐵山)에 유배되었다가 곧 풀려났다.
1694년 갑술옥사로소론이 집권하자, 다시 기용되어부수찬(副修撰) · 수찬 · 부교리(副校理) · 교리 · 필선(弼善) · 집의(執義)등을 역임하였다. 이듬해 경상도관찰사가 되고, 1696년 회양부사, 1697년 전라도관찰사 등을 역임하며 진휼 정책(賑恤政策)을 잘해 칭송을 받았다.
1698년승지에 이어 1699년대사간, 1702년 개성유수, 이듬해 승문원제조 · 이조참판, 1704년대사헌 · 대사성등을 역임하였다. 1706년 예조참판 · 경기도관찰사, 1707년 한성부판윤이 된 뒤 형조 · 병조 · 이조판서를 거쳤다.
1710년 호조판서가 되어 북한구관당상(北漢句管堂上)을 겸하며 산성과 행궁의 축조 책임을 맡았다. 1712년 과옥(科獄)이 일어나자 소론으로서 자기의 당여를 두둔하지 않고 엄정하게 사실을 규명해 소론으로부터 배척을 받기도 하였다.
이듬해우참찬· 예조판서 · 판의금부사를 거쳐우의정이 되었으며, 1716년 내의도제조(內醫都提調) ·판중추부사를 역임하고, 1721년(경종 1)영중추부사가 되었다. 1722년 신임사화로 노론의 사대신이 화를 입자 이의 부당함을 적극 주장했으며, 또김일경(金一鏡)의 사친추존론(私親追尊論)을 반대하다가 화를 입었다.
평생을 청빈하게 살았으며 사람들로부터 장자(長子) 또는 완인(完人)이라 불렸다. 저서로『갑봉집(甲峰集)』이 있다. 시호는 충정(忠靖)이다.