The first settlement at Virgin was made in 1858. It is located along the Virgin River (for which it is named), and not far from Zion National Park. The elevation is 3,606 feet (1,099 m). It lies on State Route 9. At the 2010 census there were 596 people, 202 households, and 139 families in the town. The population density was 50.1 people per square mile (19.3/km2). There were 243 housing units at an average density of 20.4 per square mile (7.9/km2).
According to the United States Census Bureau, the town has an area of 11.9 square miles (30.9 km2) in total, all land.