Schwarzer Kocher pramení jižně od Oberkochenu. Druhý pramen, Weißer Kocher, pramení západně od Unterkochenu z mnoha malých pramenů. Název Weißer Kocher pochází od bílé pěny na vodě, když se rychle řítí přes kameny. Naproti tomu Schwarzer Kocher teče poměrně pomalu a pokrytá půda dává vodě tmavou barvu. Oba prameny se spojují v Unterkochenu a tečou na sever přes města Aalen a Wasseralfingen až do Hüttlingenu, kde se Kocher stáčí na západ směrem na Abtsgmünd. Zde se do Kocheru vlévá řeka Lein. Poté se Kocher stáčí dále na severozápad k Unterrotu, kde přijímá řeku Rot a pokračuje k městům Gaildorf a Schwäbisch Hall. U Geislingenu se do Kocheru vlévá řeka Bühler. V širokém oblouku se pak Kocher opět stáčí na západ, zařezává se do roviny Hohenlohe a protéká Künzelsau. Dále pokračuje do Neuenstadtu am Kocher, kde se vlévá do řeky Brettach. U Bad Friedrichshall se Kocher vlévá do Neckaru, několik kilometrů proti proudu od ústí řeky Jagst, která teče víceméně souběžně na severovýchod s Kocherem.
.