Buchanan is a town in Botetourt County, Virginia, United States. The population was 1,196 at the 2020 census. It is part of the Roanoke Metropolitan Statistical Area. It was the western terminus of the James River and Kanawha Canal when construction on the canal ended.