본관은 경주(慶州). 자는 응순(應順), 호는 주은(酒隱). 김치세(金致世)의 증손으로, 할아버지는 직제학 김천령(金千齡)이고, 아버지는 대사헌 김만균(金萬鈞)이며, 어머니는 순흥안씨(順興安氏)로 현감 안준의(安尊義)의 딸이다. 이황(李滉)의 문하에서 수학하였다.
1558년(명종 13) 사마시에 합격했고, 1561년 식년 문과에 갑과로 급제해 홍문관정자가 되고 이어 저작(著作)·박사(博士)에 승진하였다. 그러나 이량(李樑)에게 미움을 사 형 김경원(金慶元)과 함께 파직되었다.
이량이 쫓겨나자 다시 부수찬이 되었으며 헌납·지평·교리·수찬 등을 역임하였다. 1568년 함경도의 군무를 순안할 때 산천의 형편을 두루 다니며 살펴보고 요해지(要害地)의 방비 등을 자세하게 보고하였다. 그해 종성부사가 되었고, 그 뒤 동래부사·판결사·형조참의·나주목사·정주목사를 지냈다.
1579년 의주목사가 되고 이어 평안병사·호조참판·전라감사·한성부좌윤·경기감사·병조참판을 거쳐, 1584년 함경감사·형조판서·도총관을 지냈다. 1587년 우참찬으로 승진했고, 이 때 왜구가 녹도(鹿島)를 함락하자 도순찰사(都巡察使)가 되어 이를 퇴치하였다. 이어 형조판서·경기감사를 거쳐 좌참찬으로 지의금부사를 겸했다.
1589년 정여립(鄭汝立)의 난을 수습하는 데 공을 세워 평난공신(平難功臣) 3등에 책록되고 경림군(慶林君)에 봉해졌다. 1592년 임진왜란이 일어나자, 순검사에 이어 팔도도원수가 되어 한강 및 임진강을 방어했으나, 중과부적으로 적을 막지 못하고 적의 침공만을 지연시켰다.
평양이 함락된 뒤 순안에 주둔해 행재소(行在所) 경비에 힘썼다. 이듬해 명나라 원병이 오자 명나라 장수들의 자문에 응했고, 그 뒤 호조·예조·공조의 판서를 지냈다. 1597년 정유재란 때는 병조판서로 유도대장(留都大將)을 겸임했고, 좌찬성·이조판서·우의정을 거쳐 1601년 부원군에 봉해지고 좌의정에 이르렀다. 유학에 조예가 깊었고, 병서와 궁마(弓馬)에도 능하였다. 시호는 충익(忠翼)이다.