본관은 청풍(淸風). 자는 유칙(維則). 아버지는 병조판서 김성응(金聖應)이며, 정조의 장인인 김시묵(金時默)의 아우이다.
1750년(영조 26) 사마시에 합격하여 생원이 된 뒤, 음직으로 의릉참봉(懿陵參奉)에 제수되었다.
정조 때 주로 무관직에 발탁되어 1787년(정조 11) 총융사(摠戎使)·어영대장, 1790년 금위대장·장용사(壯勇使) 등을 거쳐 1793년 호조참판·비변사당상(備邊司堂上)·판돈녕부사(判敦寧府事)를 지낸 뒤 기로소에 들어갔다. 1798년 다시 총융사에 임명되어 재직 중 죽었다. 시호는 익헌(翼憲)이다.