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