9 cities
| City | Rank | 2025 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Oskaloosa | 1 | 11,583 | 11,542 | 0.07% | 1,439 | 8 | City |
| New Sharon | 2 | 1,247 | 1,257 | -0.16% | 1,328 | 1 | City |
| Fremont | 3 | 686 | 695 | -0.29% | 645 | 1 | City |
| University Park | 4 | 473 | 487 | -0.63% | 608 | 1 | City |
| Beacon | 5 | 433 | 435 | -0.23% | 557 | 1 | City |
| Rose Hill | 6 | 154 | 161 | -1.28% | 1,085 | 0 | City |
| Leighton | 7 | 152 | 155 | -0.65% | 1,634 | 0 | City |
| Barnes City | 8 | 151 | 154 | -0.66% | 257 | 1 | City |
| Keomah Village | 9 | 106 | 109 | -0.93% | 1,683 | 0 | City |
Oskaloosa is the largest city in Mahaska County, with a population of 11,583.
Keomah Village is the smallest city in Mahaska County, with a population of 106.
There are 9 cities in Mahaska County, Iowa.