Pramení pod vrcholem Králického Sněžníku na
území obce Dolní Morava v katastrálním území Velká Morava, v nadmořské výšce
1380 m v upravené studánce. Hluboké údolí odděluje východní a západní hřbet
pohoří Králického Sněžníku. V jižním úbočí Králického Sněžníku vytváří strmý
žleb, kde přijímá několik potoků. Má zde charakter rychle mohutnícího horského
potoka, níže pak říčky s rychlou čistou vodou. V Jeseníkách přibírá tři větší
toky: Krupá, Branná a Desná. Pak protéká Branenskou vrchovinou a kolem Zábřehu,
kde se do ní vlévá Moravská Sázava. Poté přichází první meandrující úsek Litovelské
Pomoraví. V tomto úseku se do Moravy vlévá Třebůvka, Oskava a Trusovický potok.
Morava dále protéká největším a metropolitním městem na Hané Olomoucí. V Troubkách
u Přerova se do ní vlévá Bečva, která odvádí vody z jižní části Moravskoslezských
Beskyd. Pokračuje na jih ve sníženině mezi Českomoravskou vysočinou a Západními
Karpaty. Od Otrokovic je vybudován Baťův kanál. Dále pak řeka protéká moravským
Slováckem. Následuje druhý meandrující úsek mezi Bzencem Přívozem a Rohatcem,
kde protéká územím Moravská Sahara. Zde u obce Rohatec začíná tvořit společnou
česko-slovenskou státní hranici. Tuto hranici tvoří až k nejjižnějšímu bodu
katastrálního území města Lanžhot, kde se stéká s Dyjí. Morava pak dále teče
jižním směrem, kde až po soutok s Dunajem u Bratislavy-Devína tvoří rakousko-slovenskou
státní hranici. Na Slovensku je jedním z nejznámějších přítoků řeka Myjava.