본명이 김찬규(金燦奎)였으나 해방 후 김백일로 개명하였다. 1917년 1월 30일 함경북도 명천에서 태어나서 1951년 3월 28일 6·25전쟁 당시 지휘관으로 활동하던 중 뜻하지 않은 비행기 사고로 사망하였다.
1917년 함경북도 명천에서 태어나서 1935년 보성학교를 졸업했다. 1936년 만주국에서 장교를 양성하는 봉천군관학교의 5기 군관후보생 시험에 합격해 지린에서 군사훈련을 받고 제1구대에 배치되어 1937년 9월 졸업하였다. 견습사관을 거쳐 그 해 12월 만주국군 보병소위로 임관되어 제3군관구 예하 보병 제15단에 배속되었다.
1938년 12월 무렵 강재호, 신현준, 송석하, 마동악과 간도특설대 창설요원으로 일제가 패망할 때까지 복무하였다. 간도특설대는 젠다오와 러허 일대에서 항일무장부대를 공격하여 일제 침략전쟁에 적극 협력한 특수부대로서 동북항일연군과 팔로군 토벌작전을 모두 108차례 벌였다. 1939년 12월부터 주로 젠다오성에서 조직을 강화하면서 항일무장투쟁을 진압하였다. 1941년 3월 보병중위로 진급하였다. 일제침략에 적극 협력한 공로로 1943년 9월 만주국 정부로부터 훈5위 경운장을 받았다. 1944년 1월 15일 부대원들과 함께 러허성으로 옮겨 팔로군 토벌작전을 수행하였고 3월 만주국군 상위(대위)로 진급하여 제1련(중대) 연장(중대장)이 되었다. 1945년 1월부터 간도특설대가 만주국 허베이성 기동지구에 주둔해 팔로군과 민간인을 상대로 한 치안숙정 공작을 펼쳤다. 8월 20일이 되어서야 팔로군으로부터 일제가 항복하였다는 사실을 듣고 예하 부대원들과 함께 진저우로 이동해 8월 26일 부대 해체식에 참여한 후 고향으로 돌아왔다.
해방 후 신변에 위협을 느끼고 1945년 12월 간도특설대 동료인 최남근, 백선엽과 함께 남한으로 내려왔다. 월남하면서 온 세상이 붉게 물들어도 홀로 반공에 입각하여 청천백일과 같이 살겠다는 뜻으로 김백일이라고 개명하였다.
1946년 2월 육군영어학교를 졸업하고 육군 부위(중위)로 임관하였고, 국방경비대 제3연대 창설 중대장으로 임명되었다. 이후 제3연대장, 국방경비사관학교 교장, 특별부대 사령관을 역임하였다. 1948년 10월 19일 국군 제5여단을 이끌고 현지 사령관으로 여순·순천사건을 진압하고 1949년 옹진지구 전투사령관으로 옹진반도 전투를 지휘하였다. 육군보병학교 교장과 제3사단장을 거쳐 1950년 4월 육군본부 행정참모부장에 임명되었다.
6·25전쟁이 일어나자 소장 김홍일의 뒤를 이어 육군 준장으로 제1군단장을 맡았다. 그 해 9월 국군과 유엔군의 반격이 시작되자 휘하의 1군단이 10월 1일 맨 먼저 38선을 돌파해서 원산과 청진을 지나 혜산진까지 북상하였다. 대한민국에서 이 날을 기려 ‘국군의 날’로 제정하는 계기를 만들었다. 그 해 10월 육군 소장으로 진급되었다. 중국군의 공세가 시작되자 이를 물리치고 흥남철수 작전에서 10만명의 민간인을 해상수송을 통해 구출하였다. 1951년 3월 28일 제8군사령부에서 회의를 마치고 군단본부로 급거 귀대하기 위해 악천후를 무릅쓰고 비행기에 올랐다가 대관령 인근에서 비행기 사고로 사망하였다. 이후 육군 중장으로 추서되었고, 대한민국 정부에서 태극무공훈장을 받았다. 1966년 10월 서울 국립현충원 장군묘역에 안장되었다.