According to the United States Census Bureau, the town has a total area of 42.8 square miles (111 km2), of which 42.1 sq mi (109 km2) is land and 0.7 sq mi (1.8 km2) is water, comprising 1.68% of the town. The long ridge of Croydon Mountain follows the eastern boundary of town; the highest point in town is a knob on Croydon Mountain which reaches an elevation of 2,323 ft (708 m) above sea level.[4] Cornish is drained by Mill Brook, Blow-me-down Brook, and the Connecticut River, which bounds it on the west. Cornish lies fully within the Connecticut River watershed.[5] The eastern part of the town is a portion of the approximately 25,000-acre (100 km2) Blue Mountain Forest Association private game preserve, also known locally as Corbin Park, named after its founder, Austin Corbin.

Cornish is dotted with several small villages, including Cornish Center, Cornish Flat, Cornish City, Cornish Mills, South Cornish, Balloch, and Squag City.

There were 645 households out of which 32.2% had children under the age of 18 living with them, 62.9% were married couples living together, 5.4% had a female householder with no husband present, and 27.8% were non-families. 21.2% of all households were made up of individuals and 7.4% had someone living alone who was 65 years of age or older. The average household size was 2.57 and the average family size was 3.02.

In the town the population was spread out with 25.9% under the age of 18, 3.8% from 18 to 24, 26.4% from 25 to 44, 31.8% from 45 to 64, and 12.2% who were 65 years of age or older. The median age was 42 years. For every 100 females there were 100.1 males. For every 100 females age 18 and over, there were 100.2 males.

The median income for a household in the town was $53,393, and the median income for a family was $60,313. Males had a median income of $36,115 versus $29,474 for females. The per capita income for the town was $23,165. About 2.8% of families and 4.5% of the population were below the poverty line, including 5.8% of those under age 18 and 5.5% of those age 65 or over.