송시열(宋時烈)의 문하로 매우 촉망받았으며, 1675년(숙종 1) 송시열이 귀양가게 되자 과거를 단념하고 성리학(性理學)에 힘썼다. 그 뒤 여러 형제의 권유로 1682년 진사가 되고, 1684년 정시문과에 병과로 급제하여 검열을 거쳐 정언이 되자, 오도일(吳道一)이 붕당을 키우고 권세를 부린다고 탄핵하였다. 1689년 기사환국으로 인현왕후(仁顯王后)가 폐출되고 송시열이 사사(賜死)당하자, 그는 파직되고 문외출송(門外黜送)당했다가 경성에 유배되었다. 1694년 갑술환국로 인현왕후가 복위되자 풀려나 지평 · 수찬 · 교리 등을 역임하고, 1696년 이사상(李師尙)을 논핵하는 등 과격한 발언으로 파직되었다.
1698년 다시 수찬 · 집의 · 사간을 거쳐 이듬해 동래부사로 나갔다가, 1700년에 신은(新銀) 12만여 냥을 왜에 상매(商買)한 관계로 파직되었다. 이듬해 광주부윤(廣州府尹)으로 기용되었고, 1702년 승지 · 부제학을 거쳐 1704년 함경도관찰사에 이어 1710년 대사간 · 대사헌을 지냈는데, 당론을 일삼는다 하여 흥해 · 갑산 등지에 유배되었다. 1713년 대사성에 재임용되어 송시열의 묘정배향을 건의하였다.
1715년에는 부제학으로서 유계(兪棨)의 유저(遺著)인 『가례원류』의 발문을 썼다. 그 내용에 소론인 윤증(尹拯)이 송시열을 배반했다는 내용이 문제되어 파직되었다. 이듬해 노론이 승리함으로써 대사헌이 되었는데, 이 때 윤선거(尹宣擧)의 문집 『노서유고(魯西遺稿)』가 간행되자, 효종에게 불손한 내용으로 썼다 하여 훼판(毁板)하고 윤선거 부자의 관작도 추탈하게 하였다. 1717년 세자(世子: 뒤위 경종)의 대리청정에서 소론의 반대를 물리치고 이를 시행하도록 했고, 예조판서를 거쳐 다음 해 이조판서에 올랐다.
1721년(경종 1) 실록청총재관(實錄廳摠裁官)으로 『숙종실록』의 편찬에 참여하다가 신임사화로 노론 4대신과 함께 파직되어 강진으로 유배되었다. 1725년(영조 1) 노론의 재집권으로 풀려나와 우의정에 승진되어 신임사화로 죽은 노론 4대신의 신원(伸寃)을 누차 상소했으며, 좌의정을 거쳐 영의정이 되었다. 1727년 정미환국으로 관직에서 물러났다. 1729년 기로소(耆老所)에 들어갔으며, 영중추부사로 죽었다.
일생을 노론의 선봉으로 활약했으며 늘 가난하게 지냈다 한다. 시문과 글씨에 모두 솜씨가 있었다. 충주의 누암서원(樓巖書院)에 제향되었다. 저서로 『장암집』 26권이 전해지고, 편서로 『문의통고(文義通攷)』가 있다. 시호는 문경(文敬)이다.