본관은 선산(善山). 자는 고경(高卿). 아버지는 판예빈시사(判禮賓寺事) 김시로(金時露)이다.
어릴 때부터 무예에 뛰어나 1450년(세종 32) 무과에 합격하고, 1457년(세조 3) 중시(重試)에 합격해 훈련원판관을 거쳐 부호군이 되었다.
1460년 신숙주(申叔舟)의 군관으로 모련위(毛憐衛) 토벌에 공을 세워 사복시윤(司僕寺尹)으로 초수(超授)되었으며, 종성절제사·길주목사·경원부사·충청도수군절도사 등 여러 관직을 역임했다. 1467년 5월 아버지의 상을 당해 충청도 홍주에 내려가 있다가 만포절제사로 기복(起復)되었다.
그 해에 이시애(李施愛)의 난이 일어나자 강순(康純)의 비장(裨將)으로 출정해 공을 세우고 적개공신(敵愾功臣) 1등에 책훈되었으며, 경원도호부사 겸 경원진병마첨절제사가 되고 오림군(烏林君)에 봉해졌다. 이어 회령도호부사·함경북도병마절도사를 거쳐 행중추부첨지사(行中樞府僉知事)로서 내직으로 들어와 선산군(善山君)으로 고쳐 봉해졌다.
1471년(성종 2) 어린 성종을 옹립하는 데 공이 있어 좌리공신(佐理功臣) 4등에 책훈되었다. 그리고 그 해 7월에 경상좌도병마절도사를 거쳐 지중추부사·공조판서·평안도절도사와 평안도관찰사 등을 역임한 후 다시 평안도병마절도사가 되었다.
1479년 12월 명나라의 요청으로 건주야인(建州野人)을 토벌할 때, 도원수 윤필상(尹弼商)과 함께 부원수로 출전해 공을 세우고 명나라 왕으로부터 은대(銀帶)를 받았다. 평안도관찰사로 있다가 죽었다.
성품이 온량하고 음악을 좋아하였다. 아우 6명이 모두 무과에 합격한 무인 집안으로 당시 사람들이 부러워했다고 한다.