Hatfield is located on the west bank of the Connecticut River at the mouth of the Mill River, 25 miles north of Springfield and about 100 miles west of Boston.
According to the United States Census Bureau, the town has a total area of 16.8 square miles (43.6 km²), of which 16.0 square miles (41.5 km²) is land and 0.8 square mile (2.1 km²) (4.82%) is water.