30 cities
| City | County | 2025 Pop. ↓ |
|---|---|---|
| O'Fallon | St. Charles County | 96,277 |
| Oakville | St. Louis County | 35,016 |
| Ozark | Christian County | 23,708 |
| Old Jamestown | St. Louis County | 21,419 |
| Overland | St. Louis County | 15,454 |
| Oak Grove | Jackson County | 9,362 |
| Olivette | St. Louis County | 9,072 |
| Odessa | Lafayette County | 5,709 |
| Osage Beach | Camden County | 5,229 |
| Oronogo | Jasper County | 3,307 |
| Owensville | Gasconade County | 2,773 |
| Oakland | St. Louis County | 1,374 |
| Oran | Scott County | 1,206 |
| Osceola | St. Clair County | 990 |
| Oregon | Holt County | 833 |
| Orrick | Ray County | 736 |
| Olympian Village | Jefferson County | 710 |
| Otterville | Cooper County | 451 |
| Oak Grove Village | Crawford County | 402 |
| Osborn | DeKalb County | 375 |
| Oakview | Clay County | 364 |
| Ozora | Ste. Genevieve County | 336 |
| Old Monroe | Lincoln County | 286 |
| Oak Ridge | Cape Girardeau County | 238 |
| Oakwood | Clay County | 197 |
| Oakwood Park | Clay County | 187 |
| Oaks | Clay County | 125 |
| Olean | Miller County | 121 |
| Old Appleton | Cape Girardeau County | 75 |
| Osgood | Grundy County | 21 |