본관은 광산(光山, 현 광주광역시). 자는 달부(達夫). 김한수(金漢秀)의 증손으로, 할아버지는 김석경(金碩卿)이고, 아버지는 김상겸(金尙謙)이며, 어머니는 정건(鄭健)의 딸이다.
1572년에 생원시에 합격하고 이어서 별시 문과에 병과로 급제하여 집의(執義)가 되었다. 1581년에 경성판관(鏡城判官)의 직책을 고의로 버리고 돌아왔으므로 사간원의 탄핵을 받아 파직되었다.
헌납으로 있을 때 사간원과 사헌부가 함께 정철(鄭澈)을 탄핵하는 데 참여하여 정철·백유함(白惟咸)·유공진(柳拱辰)·이춘영(李春英) 등을 유배시켰다. 1592년 임진왜란이 일어나자 인천부사로 참전하였다.