| City | Rank | 2026 Pop. ↓ | 2020 Pop. | Annual Change | Density (/mi²) | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Altoona | 1 | 42,027 | 43,874 | -0.76% | 4,292 | 10 | City |
| Logan | 2 | 12,119 | 12,409 | -0.23% | 261 | 46 | Township |
| Frankstown | 3 | 7,394 | 7,360 | -0.39% | 151 | 49 | Township |
| Allegheny | 4 | 6,547 | 6,620 | -0.21% | 221 | 30 | Township |
| Antis | 5 | 6,322 | 6,494 | -0.28% | 104 | 61 | Township |
| Hollidaysburg | 6 | 5,443 | 5,596 | -0.49% | 2,336 | 2 | Borough |
| Tyrone | 7 | 5,185 | 5,420 | -0.78% | 2,548 | 2 | Borough |
| Blair | 8 | 4,675 | 4,817 | -0.43% | 343 | 14 | Township |
| Greenfield | 9 | 3,673 | 3,797 | -0.41% | 102 | 36 | Township |
| Snyder | 10 | 3,314 | 3,384 | -0.18% | 73 | 45 | Township |
| North Woodbury | 11 | 2,410 | 2,436 | -0.25% | 114 | 21 | Township |
| Tyrone | 12 | 2,365 | 2,289 | 0.42% | 110 | 21 | Township |
| Roaring Spring | 13 | 2,261 | 2,369 | -0.83% | 2,809 | 1 | Borough |
| Tyrone | 14 | 1,967 | 1,916 | 0.46% | 55 | 36 | Township |
| Tyrone | 15 | 1,804 | 1,867 | -0.55% | 43 | 42 | Township |
| Martinsburg | 16 | 1,798 | 1,868 | -0.72% | 2,783 | 1 | Borough |
| Bellwood | 17 | 1,733 | 1,815 | -0.86% | 3,641 | 0 | Borough |
| Huston | 18 | 1,234 | 1,249 | -0.16% | 35 | 35 | Township |
| Duncansville | 19 | 1,197 | 1,252 | -0.83% | 2,250 | 1 | Borough |
| Williamsburg | 20 | 1,188 | 1,231 | -0.67% | 3,237 | 0 | Borough |
| Juniata | 21 | 934 | 962 | -0.53% | 36 | 26 | Township |
| Catharine | 22 | 749 | 771 | -0.13% | 24 | 31 | Township |
| Tunnelhill | 23 | 299 | 314 | -0.99% | 605 | 0 | Borough |
| Newry | 24 | 219 | 231 | -0.9% | 2,235 | 0 | Borough |
| Birmingham | 25 | 89 | 91 | -1.11% | 1,413 | 0 | Borough |
Altoona is the largest city in Blair County, with a population of 42,027.
Birmingham is the smallest city in Blair County, with a population of 89.
There are 25 cities in Blair County, Pennsylvania.