Joki on kuuluisa kahdesta koskestaan, Koivukoskesta ja Ämmäkoskesta, joiden kohina kuului läpi kaupungin. Kun kosket padottiin, myös joen luonne muuttui. Kajaaninjoki kerää vetensä laajalta Sotkamon reitiltä Lentuasta, Ontojärvestä, Kiimasjärvestä, Nuasjärvestä, Rehjanselältä ja laskee sitten Oulujärveen ja edelleen Oulujärveä pitkin Pohjanlahteen. Oulujärven ja Nuasjärven korkeusero on 15,2 metriä.