21 cities
| City | Rank | 2025 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Shawnee | 1 | 12,520 | 12,512 | 0.24% | 432 | 29 | Township |
| Pike | 2 | 6,704 | 6,681 | 0.12% | 210 | 32 | Township |
| Thorn | 3 | 4,759 | 4,555 | 0.85% | 128 | 37 | Township |
| New Lexington | 4 | 4,470 | 4,434 | 0.16% | 2,296 | 2 | Village |
| Reading | 5 | 4,458 | 4,356 | 0.63% | 89 | 50 | Township |
| Crooksville | 6 | 2,395 | 2,422 | -0.25% | 1,476 | 2 | Village |
| Somerset | 7 | 1,483 | 1,481 | 0% | 1,273 | 1 | Village |
| Bearfield | 8 | 1,481 | 1,478 | 0.2% | 54 | 27 | Township |
| Somerset | 9 | 1,213 | 1,244 | -0.33% | 35 | 35 | Township |
| Shawnee | 10 | 1,111 | 1,054 | 2.3% | 173 | 6 | CDP |
| Thornville | 11 | 1,095 | 1,083 | 0.18% | 2,058 | 1 | Village |
| Salt Lick | 12 | 1,084 | 1,083 | 0.18% | 52 | 21 | Township |
| Coal | 13 | 946 | 939 | 0.42% | 69 | 14 | Township |
| Pleasant | 14 | 867 | 868 | 0.12% | 54 | 16 | Township |
| Junction City | 15 | 723 | 723 | 0% | 1,124 | 1 | Village |
| Monday Creek | 16 | 668 | 675 | -0.15% | 27 | 25 | Township |
| New Straitsville | 17 | 648 | 653 | -0.15% | 498 | 1 | Village |
| Shawnee | 18 | 502 | 506 | -0.2% | 223 | 2 | Village |
| Corning | 19 | 482 | 489 | -0.41% | 1,121 | 0 | Village |
| Glenford | 20 | 162 | 166 | -0.61% | 1,434 | 0 | Village |
| Hemlock | 21 | 147 | 147 | 0% | 395 | 0 | Village |
Shawnee is the largest city in Perry County, with a population of 12,520.
Hemlock is the smallest city in Perry County, with a population of 147.
There are 21 cities in Perry County, Ohio.