Marshall is a town in Madison County, North Carolina, United States. The population was 777 at the 2020 census, down from 872 in 2010. It is the county seat of Madison County.