According to the United States Census Bureau, the town has a total area of , of which is land and is water, comprising 1.93% of the town.
In addition to being New Hampshire's southernmost town, Pelham is the easternmost town in Hillsborough County.