Schwarzer Kocher wypływa na południe od Oberkochen. Drugie źródło, Weißer Kocher, wypływa na zachód od Unterkochen z wielu małych źródeł. Nazwa Weißer Kocher pochodzi od białej piany na wodzie, gdy szybko płynie po kamieniach. Z kolei Schwarzer Kocher płynie raczej powoli, a pokryta ziemia nadaje wodzie ciemny kolor. Oba dopływy łączą się w Unterkochen i płyną na północ przez miasto Aalen i Wasseralfingen aż do Hüttlingen, gdzie Kocher skręca na zachód w kierunku Abtsgmünd. Tutaj rzeka Lein wpada do Kochera. Kocher wije się dalej na północny zachód do Unterrot, gdzie wpada do rzeki Rot i płynie dalej do miast Gaildorf i Schwäbisch Hall. W pobliżu Geislingen do Kochera wpada rzeka Bühler. Kocher szerokim łukiem skręca ponownie na zachód, wcinając się w równinę Hohenlohe i przepływając przez Künzelsau. Dalej płynie do Neuenstadt am Kocher, gdzie wpływa do rzeki Brettach. W pobliżu Bad Friedrichshall Kocher wpada do Neckaru, kilka kilometrów w górę rzeki od ujścia rzeki Jagst, która płynie mniej więcej równolegle na północny wschód do Kochera.
.