The river originates in the Western Ghats and flows into the Arabian sea. It is originates at a place called Hebbagilu near Agumbe in Thirthahalli taluk in the district of Shivamogga, from an elevation of above mean sea level. Many tributaries join Varahi at places such as Shettykoppa, Halige, Kollavadi, and Bangaragalli. The annual rainfall varies from . The river joins the Arabian sea near Kundapura in the district of Udupi in Karnataka.