According to the United States Census Bureau, Amherst has a total area of , of which are land and , or 0.48%, are water. The town is bordered by Hadley to the west, Sunderland and Leverett to the north, Shutesbury, Pelham, and Belchertown to the east, and Granby and South Hadley to the south. The highest point in the town is on the northern shoulder of Mount Norwottuck at the southern border of the town; the peak is in Granby but the town's high point is a few yards away and is about . The town is nearly equidistant from both the northern and southern state lines.