| City | Rank | 2026 Pop. ↓ | 2020 Pop. | Annual Change | Density (/mi²) | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Madisonville | 1 | 19,377 | 19,642 | -0.26% | 1,044 | 19 | City |
| Dawson Springs | 2 | 2,176 | 2,451 | -2.47% | 566 | 4 | City |
| Earlington | 3 | 1,261 | 1,261 | -0.08% | 447 | 3 | City |
| Nortonville | 4 | 990 | 977 | 0.1% | 854 | 1 | City |
| White Plains | 5 | 878 | 847 | 0.46% | 270 | 3 | City |
| Hanson | 6 | 737 | 743 | -0.67% | 339 | 2 | City |
| Mortons Gap | 7 | 724 | 722 | -0.14% | 585 | 1 | City |
| St. Charles | 8 | 287 | 274 | 0.7% | 289 | 1 | City |
| Nebo | 9 | 211 | 207 | 0% | 851 | 0 | City |
Madisonville is the largest city in Hopkins County, with a population of 19,377.
Nebo is the smallest city in Hopkins County, with a population of 211.
There are 9 cities in Hopkins County, Kentucky.