is a town in Madison County, North Carolina, United States. The population was 840 at the 2000 census. It is the county seat of Madison County.
According to the United States Census Bureau, the town has a total area of 3.8 square miles (9.7 km²), of which, 3.5 square miles (9.1 km²) of it is land and 0.3 square miles (0.7 km²) of it (6.91%) is water. Marshall is located on the eastern bank of the French Broad River, one of the major river systems of western North Carolina.