본관은 광산(光山). 자는 백우(伯雨), 호는 북헌(北軒). 생원 김익겸(金益兼)의 증손으로, 할아버지는 숙종의 장인인 김만기(金萬基)이며, 아버지는 호조판서 김진구(金鎭龜)이다.
증조모 윤씨에게서 학업을 익히고, 종조부 김만중(金萬重)으로부터 문장을 배웠다.
어려서부터 재질이 특이하여 김수항(金壽恒)의 탄복을 받기도 하였다. 서인·노론의 중심가문에 속하였으므로 항상 정쟁의 와중에 있었으며, 특히 1689년의 기사환국 이후로 남인이 정권을 담당하였을 때에는 여러 차례 투옥, 유배되었다.
1694년 재물로 궁중에 내통하여 폐비 민씨를 복위하게 하고, 정국을 뒤엎으려 한 혐의로 체포되고 심문받았으나, 갑술환국으로 남인이 축출되면서 풀려났다. 그 뒤 노론에 의해서는 환국의 공로자로 칭송받았으나, 남구만(南九萬) 등의 소론으로부터는 음모를 이용한 파행적 정치활동을 행하였다고 공격받았다.
1701년 소론의 탄핵을 받아 부안(扶安)에 유배되었으며, 희빈장씨(禧嬪張氏)의 소생인 세자를 모해하였다는 혐의를 입어 서울로 잡혀가 심문을 받고, 1706년 제주로 옮겨졌다. 시재가 뛰어나며 문장이 유창하였고, 김만중의 소설 「구운몽(九雲夢)」과 「사씨남정기(謝氏南征記)」를 한문으로 번역하였다.
글씨에도 뛰어났다. 이조판서를 추증받았으며, 시호는 충문(忠文)이다. 저서로 『북헌집(北軒集)』 20권 7책과 『만필(漫筆)』 1책이 있다.