According to the United States Census Bureau, the town has a total area of , of which is land and is water, comprising 19.21% of the town. It has several miles of shoreline on Squam Lake and another mile on Lake Winnipesaukee, where its main "harbor" lies. The town center sits eccentrically near Center Harbor's northeast border, where it rises gently from the shore at the junction of New Hampshire Routes 25 and 25B. The commercial district including the town center extends for several hundred yards along NH 25 into the neighboring town of Moultonborough. The highest point in town, Sunset Hill, elevation above sea level, overlooks the town center from the west. Center Harbor lies fully within the Merrimack River watershed.