Guest, Sign inJoin
Minnesota rankings · Climate

Towns with the mildest winters in Minnesota

La Crescent has the mildest winters of Minnesota’s 270 towns of 2,500+: January nights average a low of 9° (NOAA 1991–2020 normals). The typical town here averages 6°; none of the 270 stay above freezing.

The average January low. NOAA U.S. Climate Normals, 1991–2020, from NOAA’s 5 km grid at each town’s center; one town for each grid cell. A described list: no letters. How grades work

#2

Caledonia

Houston County · 2,768 people
8°

January low·July high 81°·160 freezing nights a year

#3

Winona

Winona County · 26,530 people
8°

January low·July high 83°·148 freezing nights a year

All 270 towns

January low, highest first. Towns with the same figure share a rank (T = tied; 231 towns here).

270 towns ranked. Not here? See why a town may be missing.

#TownJanuary lowNights ≤32°July high
1La CrescentHouston County · 5,261 people9°14183°average high
2CaledoniaHouston County · 2,768 people8°16081°average high
3WinonaWinona County · 26,530 people8°14883°average high
4GoodviewWinona County · 4,122 people8°14882°average high
5West St. PaulDakota County · 21,950 people7°14682°average high
T6Apple ValleyDakota County · 55,248 people7°15882°average high
T6BurnsvilleDakota County · 65,244 people7°14782°average high
T6EaganDakota County · 67,109 people7°14782°average high
T6Inver Grove HeightsDakota County · 36,873 people7°15882°average high
T6RichfieldHennepin County · 36,593 people7°14783°average high
T11LakevilleDakota County · 79,270 people7°15082°average high
T11RosemountDakota County · 31,881 people7°15882°average high
T11WoodburyWashington County · 81,558 people7°15482°average high
T14BloomingtonHennepin County · 89,034 people7°14783°average high
T14Cottage GroveWashington County · 43,604 people7°15082°average high
T14Falcon HeightsRamsey County · 5,071 people7°15282°average high
T14Mendota HeightsDakota County · 11,475 people7°14783°average high
T14Prior LakeScott County · 28,140 people7°14582°average high
T14St. Paul ParkWashington County · 5,396 people7°15082°average high
T20Credit River5,644 people7°15082°average high
T20EdinaHennepin County · 54,356 people7°14782°average high
T20Empire3,063 people7°15882°average high
T20OakdaleWashington County · 30,588 people7°15482°average high
T20St. PaulRamsey County · 306,684 people7°15282°average high
T25Eden PrairieHennepin County · 63,075 people7°14582°average high
T25FairmontMartin County · 10,099 people7°15182°average high
T25FarmingtonDakota County · 25,425 people7°15082°average high
T25HastingsDakota County · 22,563 people7°15082°average high
T25Lake ElmoWashington County · 14,376 people7°15982°average high
T25MaplewoodRamsey County · 40,717 people7°15782°average high
T25RosevilleRamsey County · 35,663 people7°15282°average high
T25SavageScott County · 32,970 people7°14583°average high
T25ShakopeeScott County · 49,366 people7°14583°average high
T25Spring Lake TownshipScott County · 3,498 people7°16282°average high
T25WabashaWabasha County · 2,599 people7°13882°average high
T36AftonWashington County · 2,960 people7°15082°average high
T36Blue EarthFaribault County · 3,165 people7°15982°average high
T36Cedar Lake TownshipScott County · 3,080 people7°16282°average high
T36Elko New MarketScott County · 5,300 people7°15082°average high
T36HopkinsHennepin County · 19,523 people7°15682°average high
T36MinneapolisHennepin County · 430,324 people7°14782°average high
T36New Market TownshipScott County · 3,574 people7°15082°average high
T36St. AnthonyHennepin County · 9,989 people7°15282°average high
T36St. Louis ParkHennepin County · 50,027 people7°15682°average high
T45Little CanadaRamsey County · 10,567 people7°15782°average high
T45MinnetonkaHennepin County · 53,969 people7°15682°average high
T45ShoreviewRamsey County · 26,906 people7°15782°average high
T45South St. PaulDakota County · 20,532 people7°14683°average high
T45Vadnais HeightsRamsey County · 13,052 people7°15782°average high
T45West Lakeland TownshipWashington County · 3,931 people7°14782°average high
T51ChanhassenCarver County · 25,748 people6°15682°average high
T51ChaskaCarver County · 30,513 people6°16182°average high
T51Golden ValleyHennepin County · 21,325 people6°15682°average high
T51RobbinsdaleHennepin County · 14,030 people6°15682°average high
T55Columbia HeightsAnoka County · 22,482 people6°14782°average high
T55Eagle LakeBlue Earth County · 3,357 people6°16182°average high
T55GrantWashington County · 3,954 people6°15982°average high
T55JordanScott County · 6,988 people6°16282°average high
T55Lake CrystalBlue Earth County · 2,470 people6°16182°average high
T55LuverneRock County · 4,984 people6°16883°average high
T55MahtomediWashington County · 8,189 people6°15782°average high
T55New BrightonRamsey County · 22,159 people6°15782°average high
T55Oak Park HeightsWashington County · 4,625 people6°14782°average high
T55Red WingGoodhue County · 16,805 people6°15482°average high
T55St. CharlesWinona County · 4,090 people6°16781°average high
T55St. JamesWatonwan County · 4,863 people6°16083°average high
T55White Bear LakeRamsey County · 23,392 people6°15782°average high
T68Albert LeaFreeborn County · 18,217 people6°15881°average high
T68Cannon FallsGoodhue County · 4,209 people6°15482°average high
T68CarverCarver County · 7,198 people6°16182°average high
T68CrystalHennepin County · 22,239 people6°15682°average high
T68ExcelsiorHennepin County · 2,316 people6°15682°average high
T68JacksonJackson County · 3,305 people6°16882°average high
T68LonsdaleRice County · 5,117 people6°16882°average high
T68MankatoBlue Earth County · 46,529 people6°16182°average high
T68New HopeHennepin County · 20,807 people6°15682°average high
T68New PragueScott County · 8,238 people6°16282°average high
T68StillwaterWashington County · 19,354 people6°15982°average high
T68WasecaWaseca County · 9,035 people6°16281°average high
T80Belle PlaineScott County · 7,632 people6°16283°average high
T80Brooklyn CenterHennepin County · 31,846 people6°15582°average high
T80ChatfieldFillmore County · 3,018 people6°16681°average high
T80DeephavenHennepin County · 3,794 people6°15682°average high
T80Mounds ViewRamsey County · 12,786 people6°15782°average high
T80North OaksRamsey County · 5,283 people6°15782°average high
T80NorthfieldRice County · 21,992 people6°16882°average high
T80OwatonnaSteele County · 26,633 people6°16081°average high
T80PlainviewWabasha County · 3,482 people6°17081°average high
T80PlymouthHennepin County · 78,942 people6°15682°average high
T80Spring Lake ParkAnoka County · 7,127 people6°15782°average high
T80White Bear TownshipRamsey County · 10,399 people6°15782°average high
T92AustinMower County · 26,689 people6°16581°average high
T92BayportWashington County · 3,721 people6°14783°average high
T92Le CenterLe Sueur County · 2,524 people6°16382°average high
T92MontgomeryLe Sueur County · 3,539 people6°16282°average high
T92ShorewoodHennepin County · 7,620 people6°15682°average high
T92Sleepy EyeBrown County · 3,461 people6°15582°average high
T92StewartvilleOlmsted County · 6,850 people6°15681°average high
T92VictoriaCarver County · 12,447 people6°16182°average high
T100Brooklyn ParkHennepin County · 83,543 people6°15582°average high
T100Circle PinesAnoka County · 4,967 people6°15782°average high
T100FaribaultRice County · 25,040 people6°16882°average high
T100FridleyAnoka County · 30,829 people6°14782°average high
T100LexingtonAnoka County · 3,081 people6°15782°average high
T100WayzataHennepin County · 4,344 people6°15682°average high
T106HugoWashington County · 17,167 people6°15782°average high
T106Lake CityWabasha County · 5,306 people6°17083°average high
T106Marion TownshipOlmsted County · 4,111 people6°15681°average high
T106May TownshipWashington County · 2,638 people6°15982°average high
T106St. PeterNicollet County · 12,275 people6°16382°average high
T106WorthingtonNobles County · 13,979 people6°16683°average high
T112Le SueurLe Sueur County · 4,210 people6°16383°average high
T112Lino LakesAnoka County · 23,220 people6°15782°average high
T112MarshallLyon County · 14,171 people6°15884°average high
T112New UlmBrown County · 13,863 people6°15583°average high
T112OsseoHennepin County · 2,534 people6°15682°average high
T112PipestonePipestone County · 4,100 people6°17382°average high
T118ByronOlmsted County · 6,740 people6°17681°average high
T118MedinaHennepin County · 7,460 people6°15682°average high
T118North MankatoNicollet County · 14,165 people6°16183°average high
T118OronoHennepin County · 8,301 people6°15682°average high
T118RochesterOlmsted County · 124,292 people6°15682°average high
T123BlaineAnoka County · 76,603 people6°15782°average high
T123Coon RapidsAnoka County · 64,193 people6°17282°average high
T123Dodge CenterDodge County · 2,951 people6°17681°average high
T123KassonDodge County · 7,350 people6°17681°average high
T123Norwood Young AmericaCarver County · 3,777 people6°16182°average high
T123WaconiaCarver County · 14,113 people6°16182°average high
T123ZumbrotaGoodhue County · 4,072 people6°16381°average high
T130Cascade TownshipOlmsted County · 2,810 people6°17682°average high
T130CentervilleAnoka County · 3,978 people6°15782°average high
T130Maple GroveHennepin County · 73,893 people6°15682°average high
T130MoundHennepin County · 9,064 people6°15682°average high
T130Pine IslandGoodhue County · 3,911 people6°16381°average high
T130Redwood FallsRedwood County · 5,040 people6°15883°average high
T130ScandiaWashington County · 3,979 people6°16082°average high
T130WindomCottonwood County · 4,817 people6°16282°average high
T138ChamplinHennepin County · 23,125 people5°17282°average high
T138ColumbusAnoka County · 4,356 people5°16082°average high
T138MinnetristaHennepin County · 9,458 people5°16682°average high
T141CorcoranHennepin County · 9,269 people5°15682°average high
T141DaytonHennepin County · 11,402 people5°16382°average high
T141Forest LakeWashington County · 20,952 people5°16082°average high
T141Ham LakeAnoka County · 17,104 people5°17282°average high
T145AnokaAnoka County · 18,169 people5°17282°average high
T145GlencoeMcLeod County · 5,632 people5°16482°average high
147MayerCarver County · 2,563 people5°16682°average high
T148AndoverAnoka County · 33,874 people5°17282°average high
T148HutchinsonMcLeod County · 14,655 people5°16282°average high
T148RogersHennepin County · 15,606 people5°16382°average high
T151Franklin TownshipWright County · 2,939 people5°16682°average high
T151RamseyAnoka County · 29,624 people5°16382°average high
T151RockfordWright County · 4,827 people5°16682°average high
T151WatertownCarver County · 4,789 people5°16682°average high
T151WyomingChisago County · 8,121 people5°16082°average high
T156Chisago CityChisago County · 5,955 people5°16082°average high
T156East BethelAnoka County · 12,605 people5°16282°average high
T156GreenfieldHennepin County · 2,962 people5°16682°average high
T156HanoverWright County · 4,392 people5°16282°average high
T156IndependenceHennepin County · 3,763 people5°16682°average high
T161AlbertvilleWright County · 8,544 people5°16382°average high
T161DelanoWright County · 7,788 people5°16682°average high
T161LindstromChisago County · 5,039 people5°16082°average high
T161St. MichaelWright County · 22,498 people5°16282°average high
T165DuluthSt. Louis County · 88,330 people5°16176°average high
T165Granite FallsYellow Medicine County · 2,691 people5°17083°average high
T165Linwood TownshipAnoka County · 5,403 people5°16082°average high
T165MontroseWright County · 3,986 people5°16682°average high
T165Oak GroveAnoka County · 9,476 people5°16282°average high
T165OtsegoWright County · 24,525 people5°16382°average high
T165Rockford TownshipWright County · 3,474 people5°16682°average high
T172BuffaloWright County · 16,878 people4°16282°average high
T172Chisago Lake TownshipChisago County · 4,958 people4°16982°average high
T172CokatoWright County · 2,793 people4°15882°average high
T172Elk RiverSherburne County · 27,896 people4°16382°average high
T172NowthenAnoka County · 4,630 people4°16382°average high
T172StacyChisago County · 4,367 people4°16082°average high
178Two HarborsLake County · 3,443 people4°16475°average high
T179MonticelloWright County · 15,670 people4°16281°average high
T179Monticello TownshipWright County · 3,374 people4°16282°average high
T181IsantiIsanti County · 7,714 people4°17182°average high
T181St. FrancisAnoka County · 8,635 people4°16282°average high
T183AnnandaleWright County · 3,801 people4°16882°average high
T183Big LakeSherburne County · 12,929 people4°16381°average high
T183Corinna TownshipWright County · 2,596 people4°16882°average high
T183Livonia TownshipSherburne County · 6,436 people4°16381°average high
T183Silver Creek TownshipWright County · 2,620 people4°16282°average high
T188LitchfieldMeeker County · 6,528 people4°16882°average high
T188North BranchChisago County · 12,398 people4°18382°average high
T188ZimmermanSherburne County · 6,904 people4°17081°average high
T191Bradford TownshipIsanti County · 3,549 people4°17181°average high
T191CambridgeIsanti County · 11,090 people4°17181°average high
T191MontevideoChippewa County · 5,335 people4°17283°average high
T191Orrock TownshipSherburne County · 3,698 people4°17081°average high
T195BeckerSherburne County · 5,425 people4°17082°average high
T195Becker TownshipSherburne County · 5,698 people4°17082°average high
T195Cambridge TownshipIsanti County · 2,592 people4°17181°average high
T195WillmarKandiyohi County · 22,001 people4°16682°average high
T199Blue Hill TownshipSherburne County · 2,625 people4°17081°average high
T199PrincetonMille Lacs County · 5,480 people4°17081°average high
T199Rush CityChisago County · 3,300 people4°17781°average high
202St. AugustaStearns County · 3,799 people3°17282°average high
T203Palmer TownshipSherburne County · 2,633 people3°17281°average high
T203ProctorSt. Louis County · 3,054 people3°17777°average high
T205St. CloudStearns County · 72,647 people3°17282°average high
T205Waite ParkStearns County · 8,450 people3°15982°average high
T207New London TownshipKandiyohi County · 2,965 people3°16582°average high
T207Sauk RapidsBenton County · 13,768 people3°17281°average high
T207Wakefield TownshipStearns County · 2,829 people3°15981°average high
T210Cold SpringStearns County · 4,329 people3°15981°average high
T210FoleyBenton County · 2,650 people3°17281°average high
T210St. JosephStearns County · 6,846 people3°15981°average high
T213Collegeville TownshipStearns County · 3,262 people3°15981°average high
T213SartellStearns County · 19,918 people3°15982°average high
T215Brockway TownshipStearns County · 3,016 people3°18081°average high
T215PaynesvilleStearns County · 2,591 people3°16581°average high
T215Pine CityPine County · 3,820 people3°18381°average high
T218BensonSwift County · 3,444 people3°16882°average high
T218MilacaMille Lacs County · 3,041 people3°17881°average high
T218MoraKanabec County · 3,763 people3°17880°average high
T218Pokegama TownshipPine County · 2,884 people3°18381°average high
T218Watab TownshipBenton County · 3,478 people3°18082°average high
223AlbanyStearns County · 2,873 people2°15981°average high
224Little FallsMorrison County · 9,277 people2°16781°average high
225MelroseStearns County · 3,888 people2°17581°average high
226MorrisStevens County · 5,150 people2°17382°average high
227HermantownSt. Louis County · 10,110 people2°17777°average high
228Sauk CentreStearns County · 4,663 people1°17581°average high
229GlenwoodPope County · 2,631 people1°17581°average high
230Long PrairieTodd County · 3,830 people1°17880°average high
231Thomson TownshipCarlton County · 5,624 people1°19078°average high
T232AlexandriaDouglas County · 15,045 people1°16780°average high
T232La Grand TownshipDouglas County · 4,309 people1°16780°average high
T234BaxterCrow Wing County · 9,217 people1°18580°average high
T234Sylvan TownshipCass County · 3,030 people1°17580°average high
T236Alexandria TownshipDouglas County · 3,114 people1°16780°average high
T236BrainerdCrow Wing County · 14,428 people1°18580°average high
238Moose LakeCarlton County · 2,948 people1°17579°average high
239Rice LakeSt. Louis County · 4,169 people0°17777°average high
T240Breezy PointCrow Wing County · 2,771 people0°17880°average high
T240CrosslakeCrow Wing County · 2,412 people0°17880°average high
242Fergus FallsOtter Tail County · 14,246 people0°17481°average high
243MoorheadClay County · 46,533 people0°17082°average high
244DilworthClay County · 4,823 people0°17082°average high
T245BarnesvilleClay County · 2,767 people0°17181°average high
T245CloquetCarlton County · 12,399 people0°19078°average high
247WadenaWadena County · 4,341 people0°18380°average high
248Pelican RapidsOtter Tail County · 2,608 people−1°17180°average high
249PerhamOtter Tail County · 3,746 people−1°18479°average high
250Harris TownshipItasca County · 3,364 people−1°18779°average high
T251CohassetItasca County · 2,728 people−2°18579°average high
T251HibbingSt. Louis County · 15,823 people−2°20578°average high
T253Detroit LakesBecker County · 10,019 people−2°17779°average high
T253Grand Lake TownshipSt. Louis County · 2,705 people−2°17778°average high
T253Grand RapidsItasca County · 11,181 people−2°18779°average high
256Park RapidsHubbard County · 4,447 people−2°18679°average high
257ChisholmSt. Louis County · 4,625 people−2°20578°average high
258East Grand ForksPolk County · 8,906 people−2°17981°average high
259CrookstonPolk County · 7,375 people−2°18681°average high
260Bemidji TownshipBeltrami County · 4,031 people−2°18779°average high
261BemidjiBeltrami County · 15,770 people−3°18779°average high
262Northern TownshipBeltrami County · 3,701 people−3°18778°average high
263Mountain IronSt. Louis County · 2,835 people−3°18978°average high
T264EvelethSt. Louis County · 3,381 people−3°18978°average high
T264VirginiaSt. Louis County · 8,187 people−3°18978°average high
266Thief River FallsPennington County · 8,799 people−4°18279°average high
267White TownshipSt. Louis County · 3,088 people−4°22378°average high
268ElySt. Louis County · 3,231 people−5°18978°average high
269International FallsKoochiching County · 5,481 people−5°20078°average high
270RoseauRoseau County · 2,685 people−5°19179°average high
Quick answers

Questions people ask

Which Minnesota town has the mildest winters?

La Crescent (Houston County): January nights average a low of 9°. Caledonia (8°) and Winona (8°) follow.

How are these towns ranked?

By the average January low (the coldest month’s nights), highest first, on NOAA’s 1991–2020 normals, read from its 5 km grid at each town’s center. Towns with the same figure share a rank (T); the figure and the state rank are the ones on each town’s Climate page. How grades work.

Why isn’t my town on this list?

The list covers towns of 2,500+ residents, one for each of NOAA’s 5 km grid cells (270 in Minnesota): where towns share a cell, one of them stands for it, since the grid gives them the same figures. Every town’s own figures are on its Climate page. Every town is on the Minnesota page.

Go deeper

More Minnesota lists

Every list ranks the same 2,500+ towns, so a town’s rank means the same thing on each.

All Minnesota rankings →
Other states

Mildest winters in other states