Hamilton lies 5 miles inland from Massachusetts Bay, and both the eastern and western portion of town are bordered by water, with the Ipswich River to the west and Chebacco Lake and several other small ponds to the east.