본관은 선산(善山). 초명은 김신원(金信元), 자는 수백(守伯), 호는 소암(素菴). 할아버지는 김덕유(金德裕)이고, 아버지는 현령 김홍우(金弘遇)이며, 어머니는 윤은좌(尹殷佐)의 딸이다. 형이 동서분당 때 동인을 대표한 김효원(金孝元)이다.
1576년(선조 9)에 사마시에 합격하고, 1583년 알성 문과에 병과로 급제, 호조좌랑·수찬(修撰)·교리(校理)·정언(正言)을 지냈다. 1593년 의주목사로 나간 해에 큰 흉년이 들어 굶어죽는 사람이 많았으나, 의주만은 명나라 곡식을 들여온 까닭에 굶주린 백성을 구제할 수 있었다.
1597년 정유재란 때 형조참판에서 경기도관찰사가 되었는데, 선임자 유희서(柳熙緖)가 명나라 군사에게 모욕을 받고 사임한 까닭에 모두 걱정하였으나 명나라 병사들을 잘 다루어 도내 행정을 바로잡았다.
대북(大北)에 속하여 1609년 임해군(臨海君)을 사사하게 하고, 1612년 소북을 제거하기 위한 계축옥사를 잘 다스렸다 하여 익사공신(翼社功臣)에 책훈되고 숭양부원군(嵩陽府院君)에 봉하여졌다.
이후 병조판서·판중추부사에 이르렀으나 1623년 인조반정으로 훈작이 추탈되었다. 1752년(영조 28) 경기도 양평군 양백산(陽白山)에 이현석(李玄錫)이 글을 짓고 이광사(李匡師)가 쓴 신도비가 세워졌다.