본관은 안동(安東). 자는 사수(士修), 호는 동포(東圃)·초창(焦窓). 경기도 양주에서 살았다. 아버지는 호조정랑 김성후(金盛後)이며, 어머니는 임천조씨(林川趙氏)로 관찰사 조원기(趙遠期)의 딸이다. 김창협(金昌協)·김창흡(金昌翕)의 문인이다.
1732년(영조 8) 선공감역(繕工監役)이 되고, 장례원사평(掌隷院司評)·사옹원주부(司饔院主簿)·사직서영(社稷署令)·종묘서영(宗廟署令)·의빈부도사(儀賓府都事)·진산군수(珍山郡守) 등을 역임하였다.
1735년 낭천현감(狼川縣監)으로 있을 때 선정을 베풀어 치적이 많았으므로 환향할 때 읍민들에 의해 거사비(去思碑)가 세워졌으며, 진산군수로 재직 시에는 문교진흥(文敎振興)에 힘써 많은 후진을 양성한 공으로 사직할 때 군민들이 사당을 세워 그 덕을 기리었다.
그는 경사(經史)에 밝았고 성리학을 깊이 연구하였으며, 특히 고체시(古體詩)는 독자적 경지에 도달, 당시의 이병연(李秉淵)과 함께 시명(詩名)을 떨쳤다. 뒤에 김상훈(金相勛)·홍중주(洪重疇) 등 130여명이 그의 덕망과 효행을 나라에 주청, 이조참의를 추증받았다. 저서로는 『동포집(東圃集)』 8권 4책이 있다.