본관은 광산(光山). 경상북도 영천 출신. 김상한(金相漢)의 아들이다.
1928년 대구고등보통학교 2학년 때 독서회사건으로 검거되어 1년간 미결수로 복역한 뒤 퇴학, 집에서 3년간 독학하였다.
1932년 『동아일보』 농촌구제책 현상모집에 1등으로 당선, 이 상금으로 일본 규슈[九州]의 도요쿠니중학[豊國中學]에 1년간 유학하여 중학 과정을 마쳤다.
1937년 경성법학전문학교를 졸업하고 전라남도 대치(大峙), 경상북도 장기(長鬐) 등지에서 1941년까지 금융조합(농협의 전신) 이사로 재직하였다. 1941년 경성제국대학 법문학부에 입학하여 사학을 전공하던 중 1943년 겨울 학병(學兵) 응모를 거부, 학업을 중단하였다. 1944년 봄 다시 금융조합 이사로 복직하여 충청북도 제천시 봉양읍에서 광복을 맞고, 1945년 12월부터 1946년 3월까지 금융조합연합회 지도과장을 지냈다.
같은 달 경성대학(1945년 10월 10일 이름이 바뀜) 법문학부에 복학하여 그 해 여름에 졸업하고, 사학과 조수(助手)가 되어 연구활동을 하다 1947년 서울대학교 문리과대학 사학과 조교수가 되었다.
그 사이 1946년 3월부터 경성법학전문학교에서 강의를 하였다. 1951년 10월 8일 피란 수도인 부산에서 고향인 영천으로 중구절(重九節) 제사를 모시러 갔다가 불의의 사고로 죽었다.
일찍부터 국사를 비롯한 국학 등 민족문화는 물론 청나라와 조선 시대 지식층의 문화 교류에 큰 관심을 가지고 연구를 계속하였다. 1941년 여름에 『용비어천가(龍飛御天歌)』 10권을 번역하였으며(1948년 금융조합연합회간), 1946년에는 『조선역사(朝鮮歷史)』를 펴내 유려하고 아름다운 필치로 광복 후의 우리 겨레를 크게 깨우쳤다.
1948년부터 1950년까지 1945년 3월에 번역을 완료한 『열하일기(熱河日記)』 5책을 간행하였으며, 소년 시절부터 가지고 있던 농촌·농민에 대한 강한 애정의 표현으로 펄벅(Buck, P.)의 『대지(大地)』, 강용흘(姜鏞訖)의 『초당(草堂)』을 번역, 출판하였다.
고어와 고대사 연구를 위한 기초로 삼으려고 1950년 1월에 지명조사연구회(地名調査硏究會)를 조직, 조사를 진행하다 6·25전쟁이 일어나 중단하였다. 이 밖에 저서로 『동양사개설』(공저)이 있다.