The town is bordered on the west by Sturbridge; on the north by East Brookfield, Spencer and Leicester; on the east by Oxford; and on the south by Dudley and Southbridge.
Charlton is bisected by north-south Route 31, which runs through the historical villages of Charlton Center, Charlton City and Charlton Depot.