Canton is the second largest town in Haywood County, North Carolina, United States. It is located about 17 miles west of Asheville and is part of that city's metropolitan area. The town is named after the city of Canton, Ohio. The population was 4,422 at the 2020 census.