29 cities
| City | Rank | 2025 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Winona | 1 | 26,220 | 25,984 | 0.18% | 1,378 | 19 | City |
| Goodview | 2 | 4,080 | 4,117 | -0.2% | 1,840 | 2 | City |
| St. Charles | 3 | 4,065 | 4,024 | 0.2% | 1,067 | 4 | City |
| Lewiston | 4 | 1,508 | 1,527 | -0.26% | 1,192 | 1 | City |
| Homer | 5 | 1,313 | 1,296 | 0.23% | 37 | 35 | Township |
| Wilson | 6 | 1,139 | 1,136 | -0.09% | 33 | 34 | Township |
| Stockton | 7 | 830 | 825 | 0.12% | 489 | 2 | City |
| New Hartford | 8 | 817 | 809 | 0.25% | 23 | 35 | Township |
| Hillsdale | 9 | 794 | 765 | 0.76% | 50 | 16 | Township |
| Rollingstone | 10 | 781 | 768 | 0.26% | 26 | 30 | Township |
| Rollingstone | 11 | 685 | 667 | 0.44% | 1,575 | 0 | City |
| St. Charles | 12 | 649 | 645 | -0.15% | 20 | 32 | Township |
| Saratoga | 13 | 626 | 620 | 0% | 18 | 36 | Township |
| Utica | 14 | 578 | 569 | 0.35% | 17 | 34 | Township |
| Pleasant Hill | 15 | 537 | 530 | 0% | 15 | 36 | Township |
| Norton | 16 | 530 | 523 | 0.38% | 16 | 33 | Township |
| Altura | 17 | 463 | 470 | -0.43% | 156 | 3 | City |
| Dresbach | 18 | 415 | 409 | 0.48% | 53 | 8 | Township |
| Wiscoy | 19 | 356 | 350 | 0.56% | 10 | 36 | Township |
| Elba | 20 | 335 | 327 | 0.9% | 10 | 34 | Township |
| Fremont | 21 | 314 | 311 | 0% | 9 | 36 | Township |
| Hart | 22 | 298 | 297 | 0% | 8 | 36 | Township |
| Dakota | 23 | 289 | 293 | -0.34% | 522 | 1 | City |
| Mount Vernon | 24 | 278 | 276 | 0% | 8 | 35 | Township |
| Utica | 25 | 264 | 271 | -0.75% | 267 | 1 | City |
| Whitewater | 26 | 207 | 205 | 0% | 6 | 35 | Township |
| Minnesota City | 27 | 182 | 187 | -0.55% | 734 | 0 | City |
| Pickwick | 28 | 178 | 90 | 7.23% | 277 | 1 | CDP |
| Homer | 29 | 118 | 176 | -4.07% | 99 | 1 | CDP |
Winona is the largest city in Winona County, with a population of 26,220.
Homer is the smallest city in Winona County, with a population of 118.
There are 29 cities in Winona County, Minnesota.