25 cities
| City | Rank | 2025 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Altoona | 1 | 42,429 | 43,877 | -0.68% | 4,333 | 10 | City |
| Logan | 2 | 12,137 | 12,396 | -0.25% | 262 | 46 | Township |
| Frankstown | 3 | 7,476 | 7,362 | 0.11% | 153 | 49 | Township |
| Allegheny | 4 | 6,587 | 6,623 | -0.02% | 222 | 30 | Township |
| Antis | 5 | 6,353 | 6,491 | -0.13% | 105 | 61 | Township |
| Hollidaysburg | 6 | 5,513 | 5,630 | -0.43% | 2,366 | 2 | Borough |
| Tyrone | 7 | 5,275 | 5,457 | -0.7% | 2,592 | 2 | Borough |
| Blair | 8 | 4,668 | 4,789 | -0.28% | 343 | 14 | Township |
| Greenfield | 9 | 3,684 | 3,795 | -0.35% | 102 | 36 | Township |
| Snyder | 10 | 3,291 | 3,345 | -0.12% | 73 | 45 | Township |
| North Woodbury | 11 | 2,433 | 2,437 | 0.41% | 116 | 21 | Township |
| Tyrone | 12 | 2,343 | 2,266 | 0.69% | 109 | 21 | Township |
| Roaring Spring | 13 | 2,280 | 2,365 | -0.74% | 2,832 | 1 | Borough |
| Tyrone | 14 | 1,984 | 1,920 | 1.02% | 56 | 36 | Township |
| Tyrone | 15 | 1,827 | 1,867 | 0% | 44 | 42 | Township |
| Martinsburg | 16 | 1,811 | 1,868 | -0.66% | 2,803 | 1 | Borough |
| Bellwood | 17 | 1,751 | 1,814 | -0.74% | 3,679 | 0 | Borough |
| Huston | 18 | 1,228 | 1,249 | -0.57% | 35 | 35 | Township |
| Duncansville | 19 | 1,208 | 1,252 | -0.74% | 2,271 | 1 | Borough |
| Williamsburg | 20 | 1,196 | 1,231 | -0.58% | 3,259 | 0 | Borough |
| Juniata | 21 | 937 | 962 | -0.43% | 37 | 26 | Township |
| Catharine | 22 | 748 | 771 | -0.66% | 24 | 31 | Township |
| Tunnelhill | 23 | 306 | 318 | -0.97% | 619 | 0 | Borough |
| Newry | 24 | 223 | 231 | -0.89% | 2,276 | 0 | Borough |
| Birmingham | 25 | 85 | 88 | -1.16% | 1,349 | 0 | Borough |
Altoona is the largest city in Blair County, with a population of 42,429.
Birmingham is the smallest city in Blair County, with a population of 85.
There are 25 cities in Blair County, Pennsylvania.