Râul Schwarzer Kocher izvorăște la sud de Oberkochen. Al doilea izvor, Weißer Kocher, izvorăște la vest de Unterkochen din mai multe izvoare mici. Numele Weißer Kocher provine de la spuma albă de pe apă atunci când aceasta se precipită rapid peste pietre. În schimb, Schwarzer Kocher curge destul de încet, iar solul acoperit dă apei o culoare închisă. Ambele izvoare se unesc în Unterkochen și curg spre nord prin orașul Aalen și Wasseralfingen până la Hüttlingen, unde Kocher se întoarce spre vest în direcția Abtsgmünd. Aici, râul Lein se varsă în Kocher. Apoi, Kocher continuă spre nord-vest până la Unterrot, unde primește râul Rot și continuă spre orașele Gaildorf și Schwäbisch Hall. În apropiere de Geislingen, râul Bühler se varsă în Kocher. Într-o curbă largă, Kocher se întoarce apoi din nou spre vest, tăind câmpia Hohenlohe și curgând prin Künzelsau. Continuă mai departe până la Neuenstadt am Kocher, unde se varsă în râul Brettach. În apropiere de Bad Friedrichshall, Kocher se varsă în Neckar, la câțiva kilometri în amonte de gura de vărsare a râului Jagst, care curge mai mult sau mai puțin paralel cu Kocher în direcția nord-est.
.