Weaverville is a town in Buncombe County, North Carolina, United States. The population was 4,567 at the 2020 census. It is part of the Asheville Metropolitan Statistical Area.