| City | Rank | 2026 Pop. ↓ | 2020 Pop. | Annual Change | Density (/mi²) | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Hannibal | 1 | 16,736 | 17,064 | -0.4% | 1,046 | 16 | City |
| Palmyra | 2 | 3,656 | 3,605 | 0.19% | 1,178 | 3 | City |
| Rensselaer | 3 | 249 | 249 | 0% | 127 | 2 | Village |
Hannibal is the largest city in Marion County, with a population of 16,736.
Rensselaer is the smallest city in Marion County, with a population of 249.
There are 3 cities in Marion County, Missouri.