Williamston is a town in Anderson County, South Carolina, United States. The population was 3,934 at the 2010 census.
Williamston is located in northeastern Anderson County at 34°37′4″N 82°28′45″W (34.617699, -82.479256). The twin towns of Pelzer and West Pelzer are 2 miles (3 km) to the north. Anderson, the county seat, is 15 miles (24 km) to the southwest.
According to the United States Census Bureau, the town has a total area of 3.7 square miles (9.5 km2), of which 3.6 square miles (9.4 km2) is land and 0.04 square miles (0.1 km2), or 1.01%, is water.
As of the census of 2000, there were 3,791 people, 1,590 households, and 1,090 families residing in the town. The population density was 1,056.2 people per square mile (407.7/km²). There were 1,762 housing units at an average density of 490.9 per square mile (189.5/km²). The racial makeup of the town was 80.80% White, 17.67% African American, 0.08% Native American, 0.11% Asian, 0.66% from other races, and 0.69% from two or more races. Hispanic or Latino of any race were 1.74% of the population.
There were 1,590 households out of which 27.6% had children under the age of 18 living with them, 49.9% were married couples living together, 14.0% had a female householder with no husband present, and 31.4% were non-families.