27 cities
| City | Rank | 2025 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Windom | 1 | 4,793 | 4,810 | -0.08% | 1,170 | 4 | City |
| Mountain Lake | 2 | 1,930 | 1,999 | -0.72% | 1,183 | 2 | City |
| Westbrook | 3 | 727 | 759 | -0.95% | 1,085 | 1 | City |
| Windom | 4 | 543 | 523 | 1.5% | 15 | 36 | Township |
| Jeffers | 5 | 334 | 352 | -1.18% | 861 | 0 | City |
| Mountain Lake | 6 | 308 | 315 | -0.65% | 9 | 36 | Township |
| Great Bend | 7 | 301 | 310 | -0.66% | 10 | 31 | Township |
| Carson | 8 | 271 | 279 | -0.73% | 8 | 35 | Township |
| Lakeside | 9 | 237 | 244 | -0.84% | 7 | 33 | Township |
| Midway | 10 | 221 | 226 | 0% | 6 | 34 | Township |
| Storden | 11 | 211 | 223 | -1.4% | 955 | 0 | City |
| Westbrook | 12 | 198 | 201 | 0.51% | 6 | 35 | Township |
| Selma | 13 | 168 | 172 | -0.59% | 5 | 36 | Township |
| Germantown | 14 | 167 | 171 | -0.6% | 5 | 36 | Township |
| Storden | 15 | 165 | 167 | 0.61% | 5 | 36 | Township |
| Ann | 16 | 152 | 158 | -0.65% | 4 | 36 | Township |
| Highwater | 17 | 144 | 145 | 0.7% | 4 | 36 | Township |
| Dale | 18 | 142 | 143 | 0.71% | 4 | 36 | Township |
| Bingham Lake | 19 | 133 | 130 | 0% | 167 | 1 | City |
| Rose Hill | 20 | 123 | 128 | -0.81% | 3 | 36 | Township |
| Delton | 21 | 121 | 126 | -0.82% | 3 | 36 | Township |
| Amo | 22 | 115 | 120 | -0.86% | 3 | 35 | Township |
| Dundee | 23 | 80 | 74 | 1.27% | 261 | 0 | City |
| Southbrook | 24 | 72 | 74 | 0% | 2 | 34 | Township |
| Wilder | 25 | 56 | 58 | -1.75% | 71 | 1 | City |
| Fish Lake | 26 | 55 | 55 | 7.84% | 60 | 1 | CDP |
| Kinbrae | 27 | 10 | 10 | 0% | 12 | 1 | City |
Windom is the largest city in Cottonwood County, with a population of 4,793.
Kinbrae is the smallest city in Cottonwood County, with a population of 10.
There are 27 cities in Cottonwood County, Minnesota.