Chanzo chake kiko mashariki kwa mji wa Songea katika milima ya Matagoro upande wa mashariki wa Ziwa la Nyasa. Unaelekea magharibi kati ya vilima kwenye kimo cha mita 1000 karibu na Songea halafu unabadili mwelekeo kwenda kusini.
Unapofikia mpaka wa Tanzania na Msumbiji, takriban km 200 baada ya chanzo, unageuka tena kuelekea mashariki hadi bahari. Km 35 baada ya kuungana na mto Lujenda pana maporomoko ya Upinde.
Km 160 kabla ya kufika mdomoni bonde la Ruvuma linapanuka kuwa na upana wa km 10; lalio la mto ni karibu mita 500 likiwa na visiwa vya mchanga. Wakati wa ukame maji hupungua sana hadi watu kuvuka mto kwa miguu; wakati wa mvua umbali kati ya pande zote mbili unafikia zaidi ya kilomita moja.