Râul Moldova izvorăște din Vârful Lucina al Obcinii Feredeu, în apropiere de localitatea Moldova-Sulița.

Râul curge pe o lungime de 237de kilometri în direcția NV-SE și străbate teritoriile a trei județe: Suceava, Iași și Neamț. Din lungimea sa, 150 de kilometri se află pe teritoriul județului Suceava, unde bazinul său hidrografic ocupă peste 35% din suprafața județului. În acest județ, râul străbate sectoare cu pantă mai accentuată (Pojorâta și Prisaca) și sectoare unde panta scade la mai puțin de 3 metri/kilometru.

Odată cu ieșirea din munți, cursul Moldovei se ramifică în depresiunile intramontane, formând grinduri, praguri și ostroave. Pe teritoriul județului Iași, Moldova curge pe o lungime de 30 de kilometri, având un debit mediu de 31,1 m³/secundă.

Râul primește afluenți și de partea stângă și de partea dreaptă, printre cei mai importanți menționăm râurile Humor (la Gura Humorului), Suha (la Frasin), Moldovița, Putna, Colacu (la Fundu Moldovei) și Sărata (la Preutești). De-a lungul curgerii sale, Moldova străbate mai multe localități, printre care orașele Câmpulung Moldovenesc și Roman.

Moldova se varsă în Râul Siret pe teritoriul județului Neamț, în apropierea orașului Roman.

De la râul Moldova și-a luat numele ținutul istoric românesc și statul medieval Moldova.