Top 10 Cross Country Ski Spots in the Twin Cities

There are loads of wonderful cross country ski spots in the Twin Cities metro area, so it’s hard to narrow it down to just ten. We’ll give it our best shot, though!

groomed cross country ski trail with animal tracks
Country country ski trails criss-crossed by animal tracks

We chose these as the best local ski destinations based on:

  • The amount of groomed ski trails available in miles or kilometers
  • Trail difficulty suited for a variety of ability level
  • Trails groomed for both classic and skate skiing
  • Beauty and setting of the terrain (which is almost a given in the Twin Cities anyway!)

Some of these parks offer ski rentals, some of them require a vehicle permit, and all them of them require a ski trail permit of one kind or other. These details are noted in each listing.

Be sure to go to the park links for park hours if you’re counting on being able to rent equipment and/or buy a ski pass on-site. Some only offer a day pass on site, not the annual pass. Some are open for rental limited hours during the week.

(NOTE: They’re listed in alphabetical order, not order of greatness. You’ll notice some distances are listed in miles and others in kilometers. That’s not a mistake! We go by what each park uses.)

Let’s get started…

1. Afton State Park (Washington County)

Afton State Park, near Hastings, is beautifully situated in the St. Croix River Valley. It’s a very popular outdoor destination all year, with winter being no exception.

This is the only park on the list that doesn’t groom for skate skiing, but we couldn’t leave it out. How could we, with 12 beautiful miles of classic trails for beginning, intermediate and advanced skiers?

If you love big hills, Afton is your place—there are a couple giant ones. If you love rolling hills, Afton has those too. There’s just 2.5 miles for beginners, but much of it is along the river with great views.

You’ll need a state park sticker for your vehicle and the Minnesota Ski Pass. You can buy both at the park office during office hours. You’ll need your own skis for Afton as there are no rentals on-site.

See more details about Afton and get the winter map.

cross country skier next to river
This trail’s a bit rough, but winter is still beautiful!

2. Battle Creek Regional Park (Ramsey County)

Battle Creek Regional Park is divided into two sections, East (in Maplewood) and West (in Saint Paul). Groomed ski trails are maintained in both sections, with different trailheads.

Battle Creek East has 6 kilometers of trails total for beginning and intermediate skiers. The East section doesn’t have skate skiing.

Battle Creek West has 13 kilometers of groomed trails for classic and skate skiing, from easy to advanced. Almost half the trails are rated as difficult and include 3 kilometers of lighted trails for night skiing.

No vehicle permit is needed, but you’ll need the Minnesota Ski Pass at both locations. Gear rentals are available at Battle Creek Recreation Center.

Learn more about Battle Creek and get the winter maps.

3. Bunker Hills Regional Park (Anoka County)

Bunker Hills is an excellent ski destination on the north side (Andover/Coon Rapids) for beginning and intermediate skiers, both classic and skate.

There are just a couple difficult hills, otherwise the 20 kilometers of groomed trails wind around and over mostly rolling hills and through the woods.

Part of the trail system extends over to Bunker Hills Golf Club with more rolling hills, not-uncommon wildlife sightings and plenty of trees, too. This area is great for beginning skiers.

You’ll need a vehicle permit and the Minnesota Ski Pass. Gear rentals are available at the Campground office in the park.

You can find more details and winter maps here.

4. Carver Park Reserve (Carver County)

Carver Park Reserve near Victoria grooms just over 11 miles of cross country ski trails for both classic and skate. The majority of these are for advanced and intermediate skiers, which means plenty of hills. There’s a small section for beginners, too.

Carver Park Reserve is home to Lowry Nature Center, which you can ski to. Terrain is both open and wooded.

You won’t need a vehicle permit, but you’ll need Three Rivers Ski Pass for these trails. Both classic and skate gear rentals are available, but you need to rent them online in advance.

Snowfall beauty

Learn more about Carver and see the winter map.

5. Elm Creek Park Reserve (Hennepin County)

Elm Creek in Maple Grove is one of the metro area’s largest park at 4,900 acres. It’s also a hugely popular local cross country ski destination. The park grooms over 11 miles of trails for all ability levels for both classic and skate skiing.

Elm Creek is one of the few parks in the Cities that makes artificial snow for some of its trail. It also has almost four miles of lighted trails. So its ski season is longer and daily ski hours are extended.

You won’t need a vehicle permit at the park. You will need the Three Rivers Ski Pass. If you’d like to rent either classic or skate equipment you’ll need to do that online in advance.

See the Elm Creek details and take a look at the winter map.

6. Hyland Lake Park Reserve

Hyland Lake in Bloomington is the second on our top 10 list that makes artificial snow and has some lighted trails. They groom 9.5 total miles for both classic and skate, with more than half of them lighted for night skiing.

Highland has trails for all ability levels, but there are definitely more options for intermediate and advanced skiers. They even have a couple double-black-diamond sections rated as extremely difficult.

Ski rentals for both classic and skate are available, but must be made online in advance. You’ll need the Three Rivers Ski Pass, but no vehicle permit.

Find park details and the winter map here.

cross country skier on the trails after fresh snow
Fresh snow and fresh trails

7. Lake Elmo Park Reserve (Washington County)

With one of the metro area’s most extensive trail systems, Lake Elmo Park Reserve (Lake Elmo) has 15 miles of groomed trails for both classic and skate skiing. It also has another 7 miles of “packed” multi-use trails that may work for skate skiing in the right conditions.

Unfortunately, the winter map doesn’t assign difficulty to their ski trails, although it does tell you where the steep hills are—whether you want to avoid them or head for them.

There’s over 5 miles of lighted trails for night skiing, including the sections with the steep hills.

You’ll need a Washington County (or Anoka County) vehicle permit. You’ll also need Washington County’s Ski Pass. Gear rentals are not available at Elm Creek, except for their “Nordic Rocks” skis that strap onto your snow boots.

Learn more and see the winter map.

8. Lebanon Hills Regional Park (Dakota County)

Lebanon Hills is a forested, lake-filled gem of a park just minutes from the Mall of America. It’s hard to believe there’s a 2,000-acre park so close to the urban centers!

The classic trail system is split between the East and West sections (16+ miles total), while the skate trails are in the West section in the singletrack park (2.4 miles).

The classic trails offer terrain for beginning, intermediate and advanced skiers. The skate trails, while not rated, wind around among trees and up and down hills in the singletrack park, as already mentioned. Probably best for more experienced skiers.

No vehicle pass is needed, but you’ll need the Dakota County Ski Pass. Rental gear is available at the Visitor Center.

Read up on the details and see the winter map.

cross country skier next to a huge tree
We can really see into the woods in the winter

9. Theodore Wirth Regional Park (Hennepin County)

Theo Wirth is a 700-acre park with 23 kilometers of groomed cross ski trails for both classic and skate. It’s a premier ski area right in urban Minneapolis.

The park is split into North and South sections. In the North section the park makes artificial snow for an extended season and more reliable conditions. Both sections offer trails for skiers from beginning to advanced levels.

Rental equipment is available at Wirth Chalet. You won’t need a vehicle permit, but you’ll need the Loppet Ski Pass. You’ll need their Premium pass to use the trails in the North section.

Learn more and see the winter map.

10. William O’Brien State Park (Washington County)

William O’Brien State Park grooms 12 miles of cross country ski trails. It’s the only one of the three state parks in the metro area that also grooms for skate skiing.

There are trails for every level, from easy to difficult. The big rolling hills makes this park especially good for intermediate and advanced skiers. There’s an especially scenic beginner loop right along the St. Croix River.

No rental equipment is available at the Visitor Center, so you’ll need to bring your own gear. You’ll need a state park sticker for your vehicle and the Minnesota Ski Pass.

See more about William O’Brien, including the winter map.

cross country ski trail next to a river
A scenic cross country trail

That rounds out our Top 10 cross country ski destinations in the Twin Cities metro. There are dozens more, too, so it’ll take you awhile to visit them all!

Cross country skiing is one of the best ways to enjoy our wonderful winters here in Minnesota. And, thankfully, we don’t have to go far to find the trails.

Ski/shoe guide

Twin Cities Ski & Shoe Guide

Published in 2021, our 55-page digital Ski & Shoe Guide is the easiest way to find cross country ski and snowshoe trails in all seven counties of the Twin Cities metro area.

Click here for the details…

You’ll like these, too…

Sharon Brodin
Latest posts by Sharon Brodin (see all)