25 cities
| City | Rank | 2026 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Altoona | 1 | 42,140 | 43,877 | -0.68% | 4,304 | 10 | City |
| Logan | 2 | 12,107 | 12,396 | -0.25% | 261 | 46 | Township |
| Frankstown | 3 | 7,484 | 7,362 | 0.11% | 153 | 49 | Township |
| Allegheny | 4 | 6,586 | 6,623 | -0.02% | 222 | 30 | Township |
| Antis | 5 | 6,345 | 6,491 | -0.13% | 104 | 61 | Township |
| Hollidaysburg | 6 | 5,490 | 5,630 | -0.42% | 2,356 | 2 | Borough |
| Tyrone | 7 | 5,239 | 5,457 | -0.68% | 2,574 | 2 | Borough |
| Blair | 8 | 4,655 | 4,789 | -0.28% | 342 | 14 | Township |
| Greenfield | 9 | 3,671 | 3,795 | -0.35% | 102 | 36 | Township |
| Snyder | 10 | 3,287 | 3,345 | -0.12% | 73 | 45 | Township |
| North Woodbury | 11 | 2,443 | 2,437 | 0.41% | 116 | 21 | Township |
| Tyrone | 12 | 2,359 | 2,266 | 0.68% | 110 | 21 | Township |
| Roaring Spring | 13 | 2,263 | 2,365 | -0.75% | 2,811 | 1 | Borough |
| Tyrone | 14 | 2,004 | 1,920 | 1.01% | 56 | 36 | Township |
| Tyrone | 15 | 1,827 | 1,867 | 0% | 44 | 42 | Township |
| Martinsburg | 16 | 1,800 | 1,868 | -0.61% | 2,786 | 1 | Borough |
| Bellwood | 17 | 1,739 | 1,814 | -0.69% | 3,653 | 0 | Borough |
| Huston | 18 | 1,221 | 1,249 | -0.57% | 35 | 35 | Township |
| Duncansville | 19 | 1,199 | 1,252 | -0.75% | 2,254 | 1 | Borough |
| Williamsburg | 20 | 1,189 | 1,231 | -0.59% | 3,240 | 0 | Borough |
| Juniata | 21 | 933 | 962 | -0.43% | 36 | 26 | Township |
| Catharine | 22 | 743 | 771 | -0.67% | 24 | 31 | Township |
| Tunnelhill | 23 | 304 | 318 | -0.65% | 615 | 0 | Borough |
| Newry | 24 | 222 | 231 | -0.45% | 2,265 | 0 | Borough |
| Birmingham | 25 | 85 | 88 | 0% | 1,349 | 0 | Borough |
Altoona is the largest city in Blair County, with a population of 42,140.
Birmingham is the smallest city in Blair County, with a population of 85.
There are 25 cities in Blair County, Pennsylvania.