According to the United States Census Bureau, the town has a total area of 2.0 square miles (5.2 km²), of which 2.0 square miles (5.1 km²) is land and 0.04 square mile (0.1 km²) (1.49%) is water.
Clarksville is located roughly 60 miles north of Raleigh, North Carolina and roughly 90 miles southwest of Richmond.