Osceola is a city in St. Clair County, Missouri, United States. The population was 947 at the 2010 census. It is the county seat of St. Clair County.