12 cities
| City | Rank | 2025 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Harlan | 1 | 4,899 | 4,891 | 0.02% | 1,108 | 4 | City |
| Elk Horn | 2 | 638 | 601 | 1.11% | 870 | 1 | City |
| Earling | 3 | 394 | 394 | 0% | 627 | 1 | City |
| Irwin | 4 | 320 | 320 | 0% | 546 | 1 | City |
| Defiance | 5 | 247 | 249 | -0.4% | 662 | 0 | City |
| Panama | 6 | 234 | 233 | 0% | 807 | 0 | City |
| Portsmouth | 7 | 187 | 186 | 0% | 609 | 0 | City |
| Westphalia | 8 | 133 | 130 | 0% | 1,357 | 0 | City |
| Tennant | 9 | 84 | 79 | 1.2% | 117 | 1 | City |
| Kirkman | 10 | 60 | 58 | 0% | 233 | 0 | City |
| Corley | 11 | 8 | 7 | 14.29% | 133 | 0 | CDP |
| Jacksonville | 12 | 5 | 10 | 0% | 51 | 0 | CDP |
Harlan is the largest city in Shelby County, with a population of 4,899.
Jacksonville is the smallest city in Shelby County, with a population of 5.
There are 12 cities in Shelby County, Iowa.