본관은 광산(光山). 자는 경회(景晦). 할아버지는 군수 김종윤(金宗胤)이고, 아버지는 증찬성 김호(金鎬)이며, 어머니는 전의이씨(全義李氏)이다. 큰아버지인 김석(金錫)에게 입양되었다. 정지운(鄭之雲)의 문인이다.
여러 차례 과거에 실패하고 음보로 활인서별제(活人署別提)·사포서별제(司圃署別提)·수운판관(水運判官)·통례원인의(通禮院引義)·감찰·종부시주부(宗簿寺主簿)·호조좌랑·공조좌랑·형조정랑·호조정랑·종친부전적(宗親府典籍)·통례원상례(通禮院尙禮) 등을 역임하였다.
외직으로는 교하현감·임피현령 및 청도·단양 등 여러 고을의 군수를 거쳐 광주목사(廣州牧使)를 지냈다. 1592년(선조 25) 임진왜란이 일어나자 의병을 모집, 체찰사 정철(鄭澈)의 종사관으로 종군하였다. 이듬해 관병과 의병의 연합군을 이끌고 오산의 독성산성(禿城山城)을 지키다가 정철이 무고를 당하자 낙향하였다.
그 뒤 조정에서 호패법(號牌法)을 시행하려 하자 그 불편한 점을 상소하였고, 정여립(鄭汝立)을 여러 차례 규탄하였다. 재질이 민첩하고 지략이 뛰어났다. 만년에 수직(壽職: 나이가 많은 자에게 주는 대우직)으로 가선대부에 첨지중추부사가 되었다.