Spanish Lake is an unincorporated community and census-designated place in St. Louis County, Missouri, United States. The population was 18,413 at the 2020 census.