본관은 청풍(淸風). 자는 거이(居易). 김광무(金光茂)의 증손으로, 할아버지는 김효례(金孝禮)이고, 아버지는 호조판서 김길통(金吉通)이며, 어머니는 이심지(李審之)의 딸이다.
1453년(단종 1) 생원시에 합격하고, 1456년(세조 2) 식년 문과에 병과로 주1, 정자(正字)가 되었다.
이어 승정원주서(承政院注書) · 성균관주부(成均館主簿) · 호조좌랑 · 호조정랑 등을 역임하였다. 1467년 이시애(李施愛)의 난에 도총사(都摠使) 구성군(龜城君) 이준(李浚)의 종사관으로 출정하여 공을 세우고 정충출기적개공신(精忠出氣敵愾功臣) 2등에 주2 군자감정(軍資監正)에 임명되었으며, 이듬해 명나라 사신의 청으로 자계(資階: 품계)가 올라 당상관이 되었다.
1469년(예종 1) 장례원판결사를 거쳐 우부승지로 전임되었다가 1471년 성종 옹립의 공으로 좌리공신 4등에 책훈되고, 좌부승지를 거쳐 이듬해 예조참판이 되었다. 1475년(성종 6) 전라도관찰사로 나갔다가 1477년 내직으로 들어와 형조 · 호조 · 예조의 참판을 역임하고, 1478년 청릉군(淸陵君)에 주3.
1481년 의금부동지사로 있을 때 사형에 대한 오판으로 파직되었다가 이듬해 황해도관찰사로 나갔으나, 내수사의 종인 두을언(豆乙彦)을 장살한 혐의로 파직되었다. 1484년 고신(告身: 관직임명의 사령장)을 돌려받고 다시 청릉군에 봉해졌다. 글씨에 뛰어났다. 시호는 주4