본관은 경주(慶州). 자는 이흡(而洽), 호는 송와(松窩). 함경도 쌍성 출신. 아버지는 김시연(金是淵)이며, 어머니는 인동장씨(仁同張氏)로 참봉 장균(張均)의 딸이다.
어려서부터 일정한 스승이 없이 혼자 공부에 전념하였다. 과거시험에 여러 번 낙방하자 경학의 본원(本源) 공부에 힘써 박학(博學)·역행(力行)에 주력하였다.
1776년(영조 52)에 학행(學行)으로 천거, 지릉별검(智陵別檢)에 임명되었고 이어 선교랑(宣敎郎)·지릉직장(智陵直長)·선원전영(璿源殿令) 등을 지냈으며, 1798년에는 선략부사과(宣略副司果)·돈녕부주부(敦寧府主簿)와 예빈시주부(禮賓寺主簿)로 임명되었으나 사직을 청하였다.
관직에 있는 동안에도 여가를 이용해 학문 연구와 자신의 검속(檢束)에 힘썼으며, 특히 『근사록(近思錄)』과 『이정전서(二程全書)』를 독신(篤信)하였다. 1788년(정조 12)에 순릉참봉(純陵參奉)으로 있을 때 맡은 직분에 성심으로 임해 덕을 베푸니, 능예(陵隷)들이 송덕비를 세워 기렸다.
김상리는 불의한 방법으로 벼슬하는 것을 극력 배척했을 뿐만 아니라, 의리와 이익의 분변에 엄격하였다. 만년에 고향에 향숙(鄕塾)을 세우고 후진 교육에 힘을 쏟아, 사풍(士風)을 진작시키고 북방에 문운을 흥기시켰다.
김상리는 성리학을 주로 역리(易理)에 결부시켜 논술했고, 역학 연구에 관한 「경의(經義)」 등의 많은 저술을 남겼다. 1830년(순조 30)에 문인과 향중(鄕中) 선비들에 의해 함경도 쌍성 영인(寧仁)의 상덕사(尙德祠)에 향사되었다.
저서로는 『성리연의(性理演義)』 2편과 『오경촬요(五經撮要)』 5편이 있었지만, 스스로 부족하다고 여겨 태워버렸다. 증손인 근행(謹行)이 여러 문인들의 기록과 암기한 것들을 모아서, 1881년(고종 18)에 『송와집(松窩集)』 4권 2책으로 간행하였다.