Річка починає свій витік із озераЄзерище,[3] на схід від смтЄзерище, навпроти залишків Єзерищенського замку. Тече по Городоцькому та Шумілінському районах у межах північно-західної частині Городоцької височини та по північно-східній частині Полоцької низовини і впадає у річку Західна Двіна, за 1 км на південний захід від села Нові Горяни Полоцького району. Русло річки зарегульоване Ключогірським водосховищем. Найвищий рівень водопілля знаходиться біля селища міського типу Оболь у 1-й декаді квітня, середня висота над меженню 4,6 м, найбільша — 7,3 м (1956). Замерзає наприкінці 1-ї декаді грудня, льодохід із початку квітня. Весняний льодохід становить 4 доби.
Рівнинна річка. Долина переважно трапецієподібна, шириною 300-600 м (найбільша ширина до 2,5 км, між селами Мале Тешелове та Коновалове Городоцького району); у верхів'ї невиразна. Заплава двостороння, чергується по берегах, місцями зовсім відсутня; ширина її до впадіння річки Свина — 400-800 м, нижче — 100-200 м. Русло звивисте, шириною 8-20 м у верхній течії , 20-40 м — у середній, 25-30 м — у нижній. Довжина річки — 148 км, площа басейну — 2 690 км². Витрата води у гирлі — 19,4 м³/с.