According to the United States Census Bureau, the town has a total area of 45.2 square miles (117.0 km2), of which, 45.0 square miles (116.4 km2) of it is land and 0.2 square miles (0.6 km2) of it (0.53%) is water. The Connecticut River is along its eastern boundary, and the Ottauquechee River flows through the northern part of the town.
As of the census of 2000, there were 3,223 people, 1,270 households, and 900 families residing in the town. The population density was 71.7 people per square mile (27.7/km2). There were 1,382 housing units at an average density of 30.7 per square mile (11.9/km2). The racial makeup of the town was 98.57% White, 0.12% African American, 0.16% Native American, 0.43% Asian, 0.06% Pacific Islander, 0.06% from other races, and 0.59% from two or more races. Hispanic or Latino of any race were 0.62% of the population.