According to the United States Census Bureau, the town has a total area of , of which is land and , or 0.94%, is water.
In addition to the Concord River which forms part of the town's borders, the Shawsheen River flows through town.