Der Fluss ist 119 km lang, ab der Quelle des Kasyr sogar 507 km, wovon er auf 99 km schiffbar ist. Das Einzugsgebiet der Tuba beträgt 36.900 km². In diesem Gebiet liegen über 1000 Seen mit einer Gesamtfläche von 91 km². Die Tuba entsteht durch den Zusammenfluss von Kasyr und Amyl rund 20 km südöstlich von Kuragino. In sie münden mehrere kleine Wasserläufe aus dem Ostsajan. Sie fließt stark verzweigt und mündet in die Tubinskij Bucht des Krasnojarsker Stausees.
Die durchschnittliche Wassermenge beträgt 771 m³/s. Die wasserreichsten Monate sind bedingt durch die Schneeschmelze Mai und Juni mit 2.269 m³/s bzw. 2.482 m³/s. Im März führt die Tuba mit 104 m³/s am wenigsten Wasser.[7] Von Ende Oktober, Anfang Dezember bis Ende April, Anfang Mai ist die Tuba gefroren.
Den Fluss überqueren zwei Straßenbrücken (beim Dorf Gorodok und südwestlich von Kuragino) und eine Eisenbahnbrücke südlich von Kuragino.