Nelson is located in the eastern part of Cheshire County, in southwestern New Hampshire.
The town is crossed by the Monadnock-Sunapee Greenway, a hiking trail that traverses the highlands of southern New Hampshire from Mount Monadnock in Jaffrey to Mount Sunapee in Newbury.