According to the United States Census Bureau, the town has a total area of , of which are land and are water, comprising 3.97% of the town. Hopkinton is drained by the Contoocook River and its tributary, the Warner River, except for the southeast part of town, which drains to the Turkey River. The highest point in town is Shaker Hill, on the border with Henniker, with an elevation of above sea level. Hopkinton lies fully within the Merrimack River watershed.
