46 cities
| City | Rank | 2025 Pop. ↓ | 2020 Pop. | Annual Change | Density | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Grafton | 1 | 3,994 | 4,157 | -0.82% | 1,209 | 3 | City |
| Park River | 2 | 1,357 | 1,417 | -0.88% | 524 | 3 | City |
| Minto | 3 | 605 | 617 | -0.49% | 421 | 1 | City |
| Grafton | 4 | 267 | 279 | -0.74% | 8 | 34 | Township |
| Hoople | 5 | 240 | 249 | -0.83% | 444 | 1 | City |
| Kensington | 6 | 238 | 249 | -0.83% | 7 | 33 | Township |
| Fertile | 7 | 223 | 234 | -0.89% | 6 | 36 | Township |
| Fordville | 8 | 199 | 206 | -1% | 197 | 1 | City |
| Oakwood | 9 | 195 | 201 | -0.51% | 6 | 33 | Township |
| Edinburg | 10 | 190 | 197 | -1.04% | 599 | 0 | City |
| Glenwood | 11 | 157 | 162 | -0.63% | 4 | 36 | Township |
| Walsh Centre | 12 | 139 | 143 | -0.71% | 4 | 36 | Township |
| Farmington | 13 | 123 | 127 | -0.81% | 3 | 36 | Township |
| Adams | 14 | 121 | 125 | -0.82% | 124 | 1 | City |
| Forest River | 15 | 111 | 109 | 0% | 222 | 1 | City |
| Harriston | 16 | 103 | 112 | -3.74% | 3 | 34 | Township |
| Lankin | 17 | 102 | 106 | -0.97% | 355 | 0 | City |
| Dundee | 18 | 97 | 101 | -1.02% | 3 | 36 | Township |
| Lampton | 19 | 97 | 101 | -1.02% | 3 | 36 | Township |
| Acton | 20 | 94 | 98 | -1.05% | 2 | 38 | Township |
| Prairie Centre | 21 | 86 | 90 | -1.15% | 2 | 36 | Township |
| Pisek | 22 | 85 | 89 | -1.16% | 746 | 0 | City |
| Golden | 23 | 80 | 84 | -1.23% | 2 | 36 | Township |
| Ardoch | 24 | 77 | 79 | 0% | 2 | 34 | Township |
| Rushford | 25 | 77 | 81 | -1.28% | 2 | 36 | Township |
| Vernon | 26 | 72 | 74 | 0% | 2 | 36 | Township |
| Medford | 27 | 69 | 71 | 0% | 2 | 35 | Township |
| Walshville | 28 | 69 | 71 | 0% | 2 | 33 | Township |
| Forest River | 29 | 68 | 70 | 0% | 2 | 36 | Township |
| Pulaski | 30 | 68 | 71 | -1.45% | 2 | 34 | Township |
| Tiber | 31 | 54 | 57 | -1.82% | 2 | 36 | Township |
| Norton | 32 | 51 | 54 | -1.92% | 1 | 36 | Township |
| Eden | 33 | 41 | 42 | 0% | 1 | 36 | Township |
| Ops | 34 | 39 | 40 | 0% | 1 | 36 | Township |
| Adams | 35 | 36 | 37 | 0% | 1 | 34 | Township |
| Latona | 36 | 36 | 37 | 0% | 1 | 35 | Township |
| St. Andrews | 37 | 34 | 35 | 0% | 1 | 36 | Township |
| Silvesta | 38 | 34 | 35 | 0% | 1 | 35 | Township |
| Vesta | 39 | 34 | 35 | 0% | 1 | 36 | Township |
| Kinloss | 40 | 33 | 34 | 0% | 1 | 35 | Township |
| Shepherd | 41 | 27 | 28 | 0% | 1 | 35 | Township |
| Fairdale | 42 | 26 | 28 | -3.7% | 82 | 0 | City |
| Dewey | 43 | 26 | 27 | 0% | 1 | 36 | Township |
| Minto | 44 | 22 | 23 | 0% | 1 | 35 | Township |
| Sauter | 45 | 21 | 23 | -4.55% | 1 | 35 | Township |
| Nash | 46 | 9 | 35 | 12.5% | 9 | 1 | CDP |
Grafton is the largest city in Walsh County, with a population of 3,994.
Nash is the smallest city in Walsh County, with a population of 9.
There are 46 cities in Walsh County, North Dakota.