La Morava prend sa source au Mont Králický Sněžník dans le nord-ouest de la Moravie, à proximité de la frontière entre la République tchèque et la Pologne. Son cours inférieur forme la frontière entre la République tchèque et la Slovaquie puis entre l'Autriche et la Slovaquie. De 1867 à 1919, c'était la frontière entre l'Autriche (la Cisleithanie) et la Hongrie (la Transleithanie).
La large vallée de la Morava porte le nom de Haute vallée morave (Hornomoravský úval) puis de Basse vallée morave (Dolnomoravský úval) en Moravie, de Plaine morave (Marchfeld) en Basse-Autriche, et de Plaine de Záhorie (Záhorská nížina) en Slovaquie.
La Morava se jette dans le Danube à Devín, près de Bratislava. Olomouc est la principale ville du parcours. Les autres villes notables sont Kroměříž, Uherské Hradiště, Hodonin, Dürnkrut, Angern an der March et Marchegg.