Бере початок поблизу села Верхній Рубіж. Історично річка витікала з Маткозера, яке було спущено у 1886 році[2], впадає в Онезьке озеро. Довжина річки — 64 км, сточище — 1670 км². Витегра зарегульована численними шлюзами на всьому своєму протязі, з'єднана з річкою Ковжа (сточище Білого озера) Маріїнським каналом. Відноситься до сточища річки Нева (включаючи сточища річок Онезького і Ладозького озера). На річці розташоване місто Витегра. Вище за течією від міста Витегра, було споруджено Витегорське водосховище. Біля місця впадіння в Онезьке озеро від річки на захід відгалужується Онезький канал, щоб судна могли оминути Онезьке озеро і вийти до річки Свір.