본관은 부령(扶寧). 첫 이름은 김백일(金百鎰), 자는 차산(次山), 호는 지포(止浦).
성품이 성실하여 말이 적었으나 국사를 논함에는 강직하여 어려움을 피하지 않았다. 과거에서는 모두 장원을 믿었으나 제2등으로 급제하였다. 제주판관(濟州判官)으로 있을 때, 서울에서 과장(科場)의 부제(賦題)가 전달되었는데 매우 어려운 제목이었다. 이 때 당대의 이름난 문장가였던 부사 최자(崔滋)는 김구에게 이 제목으로 글짓기를 청하였다. 이에 담소자약하면서 즉석에서 글을 지어 바치니, 최자는 문장에 더 가필할 것이 없으므로 탄복하고, 아들에게 “이는 시부(詩賦)의 준승(準繩)이니 잘 간직하라.”고 하였다 한다.
서장관으로 원나라에 다녀온 뒤 8년 동안 한원(翰院)에 재직하였고, 각문지후(閣門祗候)를 거쳐 국학직강(國學直講)이 되었다. 이 때, 최항(崔沆)의 명으로 지은 『원각경(圓覺經)』 발문에 쓴 시가 최항의 뜻을 거슬러 좌천되었다. 김구는 할아버지가 중이었기 때문에 대간이 될 수 없었으나 재주를 인정받아 1263년(원종 4) 우간의대부(右諫議大夫)가 되었다. 이어 상서좌복야(尙書左僕射) · 추밀원부사 · 정당문학(政堂文學) · 이부상서를 역임하였다. 참지정사(參知政事)에 올라서는 문신들의 저술을 시험해 유능한 자에게 상을 주어 권장할 것을 건의하였다.
1273년 참지정사(叅知政事)로서 지공거(知貢擧)가 되어 진사를 선발하였다. 중서시랑평장사(中書侍郎平章事)를 거쳐 1274년 충렬왕 즉위 뒤에는 지첨의부사(知僉議府事) · 참문학사(參文學事) · 판판도사사(判版圖司事)를 역임하였다. 당시 역관들이 간계를 부려 통역을 사실대로 하지 않고, 사리를 꾀하였다. 이에 헌의하여 통문관(通文館)을 설치하고, 궁중의 학관(學館) 가운데 젊은 참외(參外)들로 하여금 한어(漢語)를 습득하게 하였다. 신종 · 희종 · 강종 · 고종의 실록 편찬에도 참여했고, 당시 원나라의 간섭이 심하던 때에 일을 잘 처리하였다.
원나라에 갔을 때 『북정록(北征錄)』을 남겼고, 충렬왕의 『용루집(龍樓集)』에도 김구의 시가 들어 있으며, 특히 변려문에 뛰어났다고 한다. 저서로는 『지포집(止浦集)』이 있다.
묘는 부안군 산내면 운산리에 있다. 시호는 문정(文貞)이다.