The town encompasses five distinct villages, each of which has its own post office. These constituent villages are Dennis (including North Dennis), Dennis Port, East Dennis, South Dennis, and West Dennis.
The town of Dennis spans the width of Cape Cod, with Cape Cod Bay to the north, Brewster to the northeast, Harwich to the southeast, Nantucket Sound to the south, and Yarmouth to the west. The town is about 10 miles (16 km) east of Barnstable, 24 miles (39 km) east of the Sagamore Bridge, and 78 miles (126 km) southeast of Boston. The Town of Dennis comprises the villages of Dennis Port, Dennis Village (including North Dennis), East Dennis, South Dennis and West Dennis.
According to the United States Census Bureau, the town has a total area of 22.3 square miles (57.7 km2), of which 20.5 square miles (53.1 km2) is land and 1.7 square miles (4.5 km2), or 7.88%, is water.
The town lies on the eastern banks of the Bass River, which nearly divides the cape in half. There are several small ponds and lakes in town, as well as Sesuit Harbor to the north and West Dennis Harbor to the south.
The level south side of the town was formed primarily from glacial outwash. Bass River and Swan Pond River were carved in the outwash plain by large flows of water off of Laurentide Ice Sheet of the Wisconsin glaciation.
The north and south shores of the town have many beaches, as well as the Dennis Yacht Club in the north and West Dennis Yacht Club in the south.
While West Dennis is indeed west of Dennisport, it is south of South Dennis. East Dennis is north of South Dennis, and Dennis is on the western shore, to the west of East Dennis.