본관은 안동(安東). 자는 운보(雲甫), 호는 낙곡(駱谷). 할아버지는 이천부사 김수경(金壽卿)이고, 아버지는 김해(金瀣)이며, 어머니는 신호(申皓)의 딸이다.
1546년(명종 1) 증광 문과에 갑과로 급제, 봉상시주부 · 경성판관(鏡城判官)을 거쳐 1557년 암행어사로 평안도에 파견되었다.
이어서 장령으로 인산진첨절제사(麟山鎭僉節制使)가 되었으나, 부적격자로 교체되어 돌아와 부교리에 올랐다. 그 뒤 시강원필선 · 홍문관전한을 거쳐 의주목사 · 황해도관찰사 등의 외직을 지냈다. 부호군 · 장례원판결사 · 동부승지 · 전라도관찰사 · 동지중추부사 · 도승지 등을 거쳐, 1564년 평안도병마수군절도사가 되었다.
그때 예하 군인 300여 인이 월경하여 야인을 토벌하다 크게 패배하였는데 이로 인해 추고(推考), 파직당하였다. 그 뒤 곧 복직되어 평안도관찰사 · 개성유수 등을 거쳐 1571년 (선조 4) 대사헌이 되었다. 평소 효우(孝友)하고 문무를 겸비하였으며, 외직에 있을 때는 엄명으로 다스려 간활(姦猾: 간사하고 교활한 관리들의 관습)이 중지되었다고 한다.