St. Clair is a city in Franklin County, Missouri, United States. The population was 4,791 at the 2020 census.