The Town Files

25 Small Towns in Minnesota With the Mildest Winters

Ranked by january average low (°f) among 165 towns of 500–10,000 people in Minnesota. #1 is La Crescent, MN (January lows average 11.7°F).

Map of the 25 towns12345678910111213141516171819202122232425
Numbers match the ranking.
25 Small Towns in Minnesota With the Mildest Winters1. La Crescent122. Oak Park Heights93. Bayport94. West Lakeland95. St. Paul Park96. Newport97. Arden Hills88. North Oaks89. Circle Pines810. Centerville811. Wabasha812. Windom813. Goodview814. St. Charles815. Elko New Market816. New Market817. Caledonia818. Two Harbors719. Spring Lake Park720. Corcoran721. Osseo722. Medina723. Stewartville724. Wayzata725. Marion7
  1. 25Marion, Minnesota

    January lows average 7.0°F

    Marion is a township of 4,027 people in Olmsted County, Minnesota. January lows average 7.0°F and July highs 80.3°F, with about 5 days a year at 90°F+ and 52 inches of snow.

    4,027 people · Olmsted County · median home $416,100 · income $116,797 · Jan low 7°F · 52 in snow

    Full Marion, Minnesota profile: weather, storms, schools, jobs →

    Marion average highs and lows by month0°20°40°60°80°JFMAMJJASOND7°80°
    NOAA 1991–2020 normals, Rochester Intl Ap station.
  2. 24Wayzata, Minnesota

    January lows average 7.0°F

    Wayzata is a city of 4,434 people in Hennepin County, Minnesota. January lows average 7.0°F and July highs 82.3°F, with about 9 days a year at 90°F+ and 54 inches of snow.

    4,434 people · Hennepin County · median home $1,153,400 · income $131,614 · Jan low 7°F · 54 in snow

    Full Wayzata, Minnesota profile: weather, storms, schools, jobs →

    Wayzata average highs and lows by month0°20°40°60°80°JFMAMJJASOND7°82°
    NOAA 1991–2020 normals, New Hope station.
  3. 23Stewartville, Minnesota

    January lows average 7.0°F

    Stewartville is a city of 6,687 people in Olmsted County, Minnesota. January lows average 7.0°F and July highs 80.3°F, with about 5 days a year at 90°F+ and 53 inches of snow.

    6,687 people · Olmsted County · median home $265,300 · income $82,632 · Jan low 7°F · 53 in snow

    Full Stewartville, Minnesota profile: weather, storms, schools, jobs →

    Stewartville average highs and lows by month0°20°40°60°80°JFMAMJJASOND7°80°
    NOAA 1991–2020 normals, Rochester Intl Ap station.
  4. 22Medina, Minnesota

    January lows average 7.0°F

    Medina is a city of 6,837 people in Hennepin County, Minnesota. January lows average 7.0°F and July highs 82.3°F, with about 9 days a year at 90°F+ and 45 inches of snow.

    6,837 people · Hennepin County · median home $736,700 · income $230,859 · Jan low 7°F · 45 in snow

    Full Medina, Minnesota profile: weather, storms, schools, jobs →

    Medina average highs and lows by month0°20°40°60°80°JFMAMJJASOND7°82°
    NOAA 1991–2020 normals, New Hope station.
  5. 21Osseo, Minnesota

    January lows average 7.2°F

    Osseo is a city of 2,688 people in Hennepin County, Minnesota. January lows average 7.2°F and July highs 83.3°F, with about 12 days a year at 90°F+ and 54 inches of snow.

    2,688 people · Hennepin County · median home $306,500 · income $62,119 · Jan low 7°F · 54 in snow

    Full Osseo, Minnesota profile: weather, storms, schools, jobs →

    Osseo average highs and lows by month0°20°40°60°80°JFMAMJJASOND7°83°
    NOAA 1991–2020 normals, Mpls Crystal Ap station.
  6. 20Corcoran, Minnesota

    January lows average 7.2°F

    Corcoran is a city of 6,185 people in Hennepin County, Minnesota. January lows average 7.2°F and July highs 83.3°F, with about 12 days a year at 90°F+ and 45 inches of snow.

    6,185 people · Hennepin County · median home $569,400 · income $133,423 · Jan low 7°F · 45 in snow

    Full Corcoran, Minnesota profile: weather, storms, schools, jobs →

    Corcoran average highs and lows by month0°20°40°60°80°JFMAMJJASOND7°83°
    NOAA 1991–2020 normals, Mpls Crystal Ap station.
  7. 19Spring Lake Park, Minnesota

    January lows average 7.2°F

    Spring Lake Park is a city of 7,188 people in Anoka County, Minnesota. January lows average 7.2°F and July highs 83.3°F, with about 12 days a year at 90°F+ and 40 inches of snow.

    7,188 people · Anoka County · median home $290,100 · income $90,753 · Jan low 7°F · 40 in snow

    Full Spring Lake Park, Minnesota profile: weather, storms, schools, jobs →

    Spring Lake Park average highs and lows by month0°20°40°60°80°JFMAMJJASOND7°83°
    NOAA 1991–2020 normals, Mpls Crystal Ap station.
  8. 18Two Harbors, Minnesota

    January lows average 7.4°F

    Two Harbors, Minnesota
    Photo: U.S. Army Corps of Engineers, photographer not specified or unknown (public domain, Wikimedia Commons)

    Two Harbors is a city of 3,633 people in Lake County, Minnesota. January lows average 7.4°F and July highs 75.1°F, with about 1 days a year at 90°F+ and 61 inches of snow.

    3,633 people · Lake County · median home $206,800 · income $65,625 · Jan low 7°F · 61 in snow

    Full Two Harbors, Minnesota profile: weather, storms, schools, jobs →

    Two Harbors average highs and lows by month0°20°40°60°80°JFMAMJJASOND7°75°
    NOAA 1991–2020 normals, Two Harbors station.
  9. 17Caledonia, Minnesota

    January lows average 7.7°F

    Caledonia is a city of 2,847 people in Houston County, Minnesota. January lows average 7.7°F and July highs 81.2°F, with about 5 days a year at 90°F+ and 45 inches of snow.

    2,847 people · Houston County · median home $157,900 · income $76,477 · Jan low 8°F · 45 in snow

    Full Caledonia, Minnesota profile: weather, storms, schools, jobs →

    Caledonia average highs and lows by month0°20°40°60°80°JFMAMJJASOND8°81°
    NOAA 1991–2020 normals, Caledonia station.
  10. 16New Market, Minnesota

    January lows average 7.8°F

    New Market is a township of 3,525 people in Scott County, Minnesota. January lows average 7.8°F and July highs 82.0°F, with about 7 days a year at 90°F+ and 41 inches of snow.

    3,525 people · Scott County · median home $595,300 · income $130,231 · Jan low 8°F · 41 in snow

    Full New Market, Minnesota profile: weather, storms, schools, jobs →

    New Market average highs and lows by month0°20°40°60°80°JFMAMJJASOND8°82°
    NOAA 1991–2020 normals, Farmington 3 Nw station.
  11. 15Elko New Market, Minnesota

    January lows average 7.8°F

    Elko New Market is a city of 4,846 people in Scott County, Minnesota. January lows average 7.8°F and July highs 82.0°F, with about 7 days a year at 90°F+ and 41 inches of snow.

    4,846 people · Scott County · median home $433,100 · income $152,150 · Jan low 8°F · 41 in snow

    Full Elko New Market, Minnesota profile: weather, storms, schools, jobs →

    Elko New Market average highs and lows by month0°20°40°60°80°JFMAMJJASOND8°82°
    NOAA 1991–2020 normals, Farmington 3 Nw station.
  12. 14St. Charles, Minnesota

    January lows average 7.9°F

    St. Charles, Minnesota
    Photo: Truman Ward Ingersoll (February 19 , 1862 - June 9 , 1922) (public domain, Wikimedia Commons)

    St. Charles is a city of 3,990 people in Winona County, Minnesota. January lows average 7.9°F and July highs 82.6°F, with about 14 days a year at 90°F+ and 45 inches of snow.

    3,990 people · Winona County · median home $256,600 · income $96,200 · Jan low 8°F · 45 in snow

    Full St. Charles, Minnesota profile: weather, storms, schools, jobs →

    St. Charles average highs and lows by month0°20°40°60°80°JFMAMJJASOND8°83°
    NOAA 1991–2020 normals, Minnesota City Dam 5 station.
  13. 13Goodview, Minnesota

    January lows average 8.0°F

    Goodview is a city of 4,158 people in Winona County, Minnesota. January lows average 8.0°F and July highs 82.5°F, with about 11 days a year at 90°F+ and 38 inches of snow.

    4,158 people · Winona County · median home $254,200 · income $74,712 · Jan low 8°F · 38 in snow

    Full Goodview, Minnesota profile: weather, storms, schools, jobs →

    Goodview average highs and lows by month0°20°40°60°80°JFMAMJJASOND8°83°
    NOAA 1991–2020 normals, Winona Dam 5 A station.
  14. 12Windom, Minnesota

    January lows average 8.0°F

    Windom is a city of 4,798 people in Cottonwood County, Minnesota. January lows average 8.0°F and July highs 84.3°F, with about 13 days a year at 90°F+ and 44 inches of snow.

    4,798 people · Cottonwood County · median home $169,700 · income $74,899 · Jan low 8°F · 44 in snow

    Full Windom, Minnesota profile: weather, storms, schools, jobs →

    Windom average highs and lows by month0°20°40°60°80°JFMAMJJASOND8°84°
    NOAA 1991–2020 normals, Windom station.
  15. 11Wabasha, Minnesota

    January lows average 8.1°F

    Wabasha is a city of 2,559 people in Wabasha County, Minnesota. January lows average 8.1°F and July highs 80.9°F, with about 7 days a year at 90°F+ and 40 inches of snow.

    2,559 people · Wabasha County · median home $262,300 · income $64,514 · Jan low 8°F · 40 in snow

    Full Wabasha, Minnesota profile: weather, storms, schools, jobs →

    Wabasha average highs and lows by month0°20°40°60°80°JFMAMJJASOND8°81°
    NOAA 1991–2020 normals, Alma Dam 4 station.
  16. 10Centerville, Minnesota

    January lows average 8.3°F

    Centerville is a city of 3,896 people in Anoka County, Minnesota. January lows average 8.3°F and July highs 82.7°F, with about 12 days a year at 90°F+ and 49 inches of snow.

    3,896 people · Anoka County · median home $376,900 · income $122,541 · Jan low 8°F · 49 in snow

    Full Centerville, Minnesota profile: weather, storms, schools, jobs →

    Centerville average highs and lows by month0°20°40°60°80°JFMAMJJASOND8°83°
    NOAA 1991–2020 normals, Vadnais Lake station.
  17. 9Circle Pines, Minnesota

    January lows average 8.3°F

    Circle Pines is a city of 5,025 people in Anoka County, Minnesota. January lows average 8.3°F and July highs 82.7°F, with about 12 days a year at 90°F+ and 48 inches of snow.

    5,025 people · Anoka County · median home $293,600 · income $101,800 · Jan low 8°F · 48 in snow

    Full Circle Pines, Minnesota profile: weather, storms, schools, jobs →

    Circle Pines average highs and lows by month0°20°40°60°80°JFMAMJJASOND8°83°
    NOAA 1991–2020 normals, Vadnais Lake station.
  18. 8North Oaks, Minnesota

    January lows average 8.3°F

    North Oaks is a city of 5,272 people in Ramsey County, Minnesota. January lows average 8.3°F and July highs 82.7°F, with about 12 days a year at 90°F+ and 40 inches of snow.

    5,272 people · Ramsey County · median home $821,200 · income $231,742 · Jan low 8°F · 40 in snow

    Full North Oaks, Minnesota profile: weather, storms, schools, jobs →

    North Oaks average highs and lows by month0°20°40°60°80°JFMAMJJASOND8°83°
    NOAA 1991–2020 normals, Vadnais Lake station.
  19. 7Arden Hills, Minnesota

    January lows average 8.3°F

    Arden Hills is a city of 9,939 people in Ramsey County, Minnesota. January lows average 8.3°F and July highs 82.7°F, with about 12 days a year at 90°F+ and 40 inches of snow.

    9,939 people · Ramsey County · median home $441,900 · income $134,118 · Jan low 8°F · 40 in snow

    Full Arden Hills, Minnesota profile: weather, storms, schools, jobs →

    Arden Hills average highs and lows by month0°20°40°60°80°JFMAMJJASOND8°83°
    NOAA 1991–2020 normals, Vadnais Lake station.
  20. 6Newport, Minnesota

    January lows average 8.6°F

    Newport is a city of 3,797 people in Washington County, Minnesota. January lows average 8.6°F and July highs 82.6°F, with about 12 days a year at 90°F+ and 46 inches of snow.

    3,797 people · Washington County · median home $378,100 · income $71,979 · Jan low 9°F · 46 in snow

    Full Newport, Minnesota profile: weather, storms, schools, jobs →

    Newport average highs and lows by month0°20°40°60°80°JFMAMJJASOND9°83°
    NOAA 1991–2020 normals, St Paul Downtown Ap station.
  21. 5St. Paul Park, Minnesota

    January lows average 8.6°F

    St. Paul Park is a city of 5,544 people in Washington County, Minnesota. January lows average 8.6°F and July highs 82.6°F, with about 12 days a year at 90°F+ and 46 inches of snow.

    5,544 people · Washington County · median home $263,500 · income $100,642 · Jan low 9°F · 46 in snow

    Full St. Paul Park, Minnesota profile: weather, storms, schools, jobs →

    St. Paul Park average highs and lows by month0°20°40°60°80°JFMAMJJASOND9°83°
    NOAA 1991–2020 normals, St Paul Downtown Ap station.
  22. 4West Lakeland, Minnesota

    January lows average 9.1°F

    West Lakeland is a township of 3,976 people in Washington County, Minnesota. January lows average 9.1°F and July highs 85.3°F, with about 18 days a year at 90°F+ and 47 inches of snow.

    3,976 people · Washington County · median home $709,300 · income $216,310 · Jan low 9°F · 47 in snow

    Full West Lakeland, Minnesota profile: weather, storms, schools, jobs →

    West Lakeland average highs and lows by month0°20°40°60°80°JFMAMJJASOND9°85°
    NOAA 1991–2020 normals, Stillwater 1 Se station.
  23. 3Bayport, Minnesota

    January lows average 9.1°F

    Bayport is a city of 4,024 people in Washington County, Minnesota. January lows average 9.1°F and July highs 85.3°F, with about 18 days a year at 90°F+ and 47 inches of snow.

    4,024 people · Washington County · median home $376,900 · income $125,893 · Jan low 9°F · 47 in snow

    Full Bayport, Minnesota profile: weather, storms, schools, jobs →

    Bayport average highs and lows by month0°20°40°60°80°JFMAMJJASOND9°85°
    NOAA 1991–2020 normals, Stillwater 1 Se station.
  24. 2Oak Park Heights, Minnesota

    January lows average 9.1°F

    Oak Park Heights is a city of 4,849 people in Washington County, Minnesota. January lows average 9.1°F and July highs 85.3°F, with about 18 days a year at 90°F+ and 47 inches of snow.

    4,849 people · Washington County · median home $354,800 · income $82,476 · Jan low 9°F · 47 in snow

    Full Oak Park Heights, Minnesota profile: weather, storms, schools, jobs →

    Oak Park Heights average highs and lows by month0°20°40°60°80°JFMAMJJASOND9°85°
    NOAA 1991–2020 normals, Stillwater 1 Se station.
  25. 1La Crescent, Minnesota

    January lows average 11.7°F

    La Crescent is a city of 5,276 people in Houston County, Minnesota. January lows average 11.7°F and July highs 81.8°F, with about 8 days a year at 90°F+ and 38 inches of snow.

    5,276 people · Houston County · median home $272,400 · income $85,368 · Jan low 12°F · 38 in snow

    Full La Crescent, Minnesota profile: weather, storms, schools, jobs →

    La Crescent average highs and lows by month10°30°50°70°90°JFMAMJJASOND12°82°
    NOAA 1991–2020 normals, La Crescent Dam 7 station.

More Minnesota rankings

Same ranking, other places

Methodology. We ranked 165 towns of 500–10,000 people in Minnesota (2020 Census population). Only towns better than 60% of their peers on this measure qualify, so lists can be shorter than 25. Sources: