본관은 의성(義城). 자는 계맹(繼孟), 호는 서산(西山). 안동 출신. 김성일(金誠一)의 주손(胄孫). 아버지는 능주목사(綾州牧使) 김진화(金鎭華)이며, 어머니는 이원상(李元祥)의 딸이다. 유치명(柳致明)의 문인이다.
1841년(헌종 7) 성현의 격언을 가려뽑아 『제훈집설요람(諸訓集說要覽)』을 지었다. 1845년 4월 유치명의 제자가 되면서 이황(李滉)·이상정(李象靖)·유치명으로 이어지는 영남학파의 주요한 학통을 계승하게 되었다. 이 해 겨울 가정과 사우로부터 보고 들은 바를 모아 『곤학록(困學錄)』을 편성하고, 「초학잠(初學箴)」·「외천설(畏天說)」을 지었다.
1850년(철종 1) 친명(親命)으로 증광시(增廣試)에 응시하였다. 1851년 『학봉집(鶴峯集)』을 중간하고, 그 이듬해에는 『가례의(家禮儀)』를 편성하였다. 1854년 「졸수요결(拙守要訣)」과 「입학오도(入學五圖)」 및 「주일설(主一說_」을 지었다. 「입학오도」에서는 학문의 대요가 입지(立志)·거경(居敬)·궁리(窮理)·역행(力行)의 네 가지에 불과하다고 역설하였다.
1867년(고종 4) 어사 박선수(朴瑄壽)가 유일(遺逸)로 천거하여 인릉참봉(仁陵參奉)에 임명되었고, 얼마 뒤 사옹원주부(司甕院主簿)·경상도도사에 임명되었으나 모두 부임하지 않았다. 1878년 집 서쪽 복병산(伏屛山)에 서산재(西山齋)를 지었다. 1882년 사헌부지평에 임명되었으나 또한 나가지 않았다. 1889년 퇴계선생문집고증(退溪先生文集攷證)을 회교(會校)하였다.
1894년 7월 승정원우부승지에 오르고 이 해 8월 영해부사로 임명되었으나 사직소를 올렸다. 한말 영남의 대유학자로 이돈우(李敦禹), 권연하(權璉夏) 등과 교유하였으며, 학자·의병·독립운동가 등 수많은 제자를 양성하였다. 사후 소계서당(邵溪書堂)에 입향되었으며, 저서로 『서산집』 16책(본집 13책, 속집 3책)이 있다. 이 밖에 김흥락의 문하에 출입했던 문인 705인이 등록된 『보인계첩(輔仁稧帖)』이 있다.