자는 장원(長源). 연안부(延安府) 출신.
공민왕(恭愍王) 때 과거에 급제하여 전주사록(全州司錄)에 임명되었다. 1370년(공민왕 19) 8월 박실(朴實)·유백유(柳伯濡) 등과 함께 향공으로 뽑혀 정조사(正朝使) 권균(權鈞)을 따라 명나라에 갔다. 이듬해 제과(制科)에 급제해 동창부(東昌府) 구현(丘縣)의 승(丞)에 임명되었다.
그러나 중국어에 서투르고 고향에 노친이 있음을 이유로 사퇴하고 돌아왔다. 김도가 귀국하자 공민왕은 김도를 예로 맞이하고 우사간 예문관응교(右司諫藝文館應敎)에 임명하였다. 여러 관직을 거쳐 성균사예(成均司藝)에 올랐다. 공민왕이 손수 ‘김도장원나복산인(金濤長源蘿葍山人)’이라는 8글자를 써서 하사하였다.
우왕이 즉위하자 문하사인(門下舍人)으로서 좌사의(左舍議) 유순(柳珣), 기거사인(起居舍人) 박상진(朴尙眞), 우사의대부(右司議大夫) 안종원(安宗源) 등과 함께 환관의 정치간여를 금지하는 내용의 글을 도당(都堂)에 올렸다.
또한 좌사의 안종원, 보궐(補闕) 임효선(林孝先), 정언(正言) 노숭(盧嵩) 등과 함께 왕에게 김흥경(金興慶)과 그 일당인 왕백(王伯)·안소(安沼)·정귀수(鄭貴壽) 등을 내쫓고 유신(維新)의 정교(政敎)를 펼 것을 상소하였다. 이에 김흥경이 언양(彦陽)으로 귀양을 갔으며, 그의 집이 몰수당하였다.
1376년(우왕 2) 12월에 좌부대언(左副代言)에 오르고, 이듬해 3월에는 지신사(知申事)로서 국자감시관(國子監試官)이 되어 정전(鄭悛) 등 99인을 뽑았으며, 곧 밀직제학(密直提學)으로 승진하였다. 이때 찬성사 홍중선(洪仲善)과 어울려 반대세력을 비판해 권신 이인임(李仁任)의 미움을 받게 되었다.
1379년 김도의 가노(家奴)가 연경궁(延慶宮) 옛터의 돌을 훔친 일로 이인임의 탄핵을 받아 파면되었다. 환관 이득분(李得芬)의 도움으로 관직을 그만두는 것으로 면하였으나, 같은 해 7월에 양백연(楊伯淵)의 옥사에 연루되어 효수당하였다.