The White River rises at Skylight Pond south of Bread Loaf Mountain near the crest of the Green Mountains. The river flows east to the town of Granville, where it receives the outflow from the southern portion of Granville Notch. The river then turns south and, followed by Vermont Route 100, flows through the towns of Hancock and Rochester. Entering Stockbridge, the river turns northeast and, followed by Vermont Route 107, flows to the town of Bethel, where the Third Branch of the White River enters from the north. The Second Branch and the First Branch of the White River also enter from the north as the river flows through Royalton.
From Royalton to the river's mouth, the valley is occupied by Interstate 89 and Vermont Route 14. Flowing southeast, the river passes through the town of Sharon and enters the town of Hartford, where it reaches the Connecticut River at the village of White River Junction.