9 cities
| City | Rank | 2026 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Oskaloosa | 1 | 11,591 | 11,542 | 0.07% | 1,440 | 8 | City |
| New Sharon | 2 | 1,245 | 1,257 | -0.16% | 1,326 | 1 | City |
| Fremont | 3 | 684 | 695 | -0.29% | 643 | 1 | City |
| University Park | 4 | 470 | 487 | -0.63% | 604 | 1 | City |
| Beacon | 5 | 433 | 435 | 0% | 557 | 1 | City |
| Rose Hill | 6 | 153 | 161 | -0.65% | 1,077 | 0 | City |
| Leighton | 7 | 152 | 155 | 0% | 1,634 | 0 | City |
| Barnes City | 8 | 151 | 154 | 0% | 257 | 1 | City |
| Keomah Village | 9 | 106 | 109 | 0% | 1,683 | 0 | City |
Oskaloosa is the largest city in Mahaska County, with a population of 11,591.
Keomah Village is the smallest city in Mahaska County, with a population of 106.
There are 9 cities in Mahaska County, Iowa.