The 7 Best Fly Fishing Spots in Minnesota!

When it comes to fly fishing—especially for the Minnesota’s three species of trout—you’re going to be hard-pressed to get a pro to give up their secret spots. Trout anglers will find the best fly fishing in the streams of Southeast Minnesota’s Bluff Country or in the fast-moving rivers along the Lake Superior’s North Shore. But in Minnesota, there’s more to fly fishing than just trout. Panfish, crappies, bass, and even opportunistic northern pike will hit a fly with the right pattern. While we don’t have all the secrets of an experienced guide, we’ve got a few thoughts about places where you can put your fly on a fish (trout, or otherwise). Here are our favorites.

1. Badger Creek, Houston County, MN

Badger Creek is a stream that trout anglers will appreciate, but fly anglers may find a bit challenging: Like many of the trout streams in southeast part of the state, it’s narrow and often tree-lined. There are larger streams and rivers in the area, but with waders you’ll have a pretty good day targeting brown and brook (especially upstream) trout. Badger Creek is a native trout stream and thanks to a successful stocking program in the 1970s, is a self-supporting trout habitat with a strong population of brooks and browns. From the town of Houston, head east on Highway 16. Just outside town, turn south on Highway 76, which will start tracking along Badger Creek at the intersection with County 10. Look for easement and state land notices for access to the stream. 

2. Cenaiko Lake at Coon Rapids Dam Regional Park

Fly anglers in the Metro Area will appreciate the both the proximity of Cenaiko Lake, as well as the 5,000-plus rainbow and brook trout that the Minnesota Department of Natural Resources stocks in it every year. Part of the Coon Rapids Dam Regional Park, Cenaiko Lake has no boat access, giving fly anglers plenty of room to fish from the shore or fishing pier. Because it’s a designated trout lake, fishing is only allowed during trout season.

3. St. Croix River

The St. Croix River is a gorgeous, federally-protected waterway that is home to everything from palm-sized panfish to oceanic-sized sturgeon and catfish, as well as world class smallmouth bass. It’s also easily fished with a fly rod from the shore, making it an awesome river for beginners as well as more experienced anglers. It’s also a wide and deep enough river that you can fish it from a drift boat and practice for the big fly fishing trip out west.

4. Baptism River, Lake County, MN

The Baptism River is prime habitat for both brook and rainbow trout, as well as migratory steelhead and coho salmon who visit the river from Lake Superior to spawn. In its upper reaches, before it starts its descent toward the lake, it’s wide enough that fly anglers can easily fish it from the shore. There’s also plenty of space to cast at the mouth. Upstream of Highway 61, though, you’ll want to use waders to reach the best trout habitat.

Don't try to skip rocks upstream. Good advice for life and...for skipping rocks. #onlyinmn

A post shared by Josh Haroldson - MN + Madison (@joshharoldson) on

5. Root River, South Branch, Fillmore County, MN

The South Branch of the Root River is wider than most of the other streams in Southeastern Minnesota, making it easier for fly anglers to cast from the shore, targeting some of the best brown trout habitat in the state. In addition to brooks and browns, smallmouth and rock bass make their homes in the root river. The paved Root River Trail offers easy access to the water, making it a good place for beginning fly anglers to start their quest for the elusive trout.

6. Stoney Brook, Brainerd, MN

In Central Minnesota, you can target brook trout in Stoney Brook near where it flows into Upper Gull Lake. The stream is relatively open and free over overhanging trees as it makes its way through wetlands and coniferous Northland forest. Panfish, crappies, and bass can also be targeted by fly anglers near the mouth of the stream. Since you’re in the neighborhood, why not try and get a northern to hit your fly on Upper Gull Lake?

7. Trout Run Creek, Winona County, MN

With a name like Trout Run, you’d think this creek in Southeastern Minnesota would be overrun with anglers and depleted of fish. As it turns out, though, with plenty of easements and incredibly good management from the DNR, Trout Run Creek is an awesome brown trout fishery. Avoid the portion of the creek that flows through Whitewater State Park, as park visitors increase fishing pressure.

View more Minnesota Fishing Holes.
Select a Minnesota town to find the Best Things-To-Do and Places To Go around you
Find Fishing Holes Near You
Enter City / State or Zip code below
Select your town to find the Best Things-To-Do and Places To Go around you:

Aitkin County

Anoka County

Becker County

Beltrami County

Benton County

Big Stone County

Blue Earth County

Brown County

Carlton County

Carver County

Cass County

Chippewa County

Chisago County

Clay County

Clearwater County

Cook County

Cottonwood County

Crow Wing County

Dakota County

Dodge County

Douglas County

Faribault County

Fillmore County

Freeborn County

Goodhue County

Grant County

Hennepin County

Houston County

Hubbard County

Isanti County

Itasca County

Jackson County

Kanabec County

Kandiyohi County

Kittson County

Koochiching County

Lac Qui Parle County

Lake County

Lake Of The Woods County

Le Sueur County

Lincoln County

Lyon County

Mahnomen County

Marshall County

Martin County

Mcleod County

Meeker County

Mille Lacs County

Morrison County

Mower County

Murray County

Nicollet County

Nobles County

Norman County

Olmsted County

Otter Tail County

Pennington County

Pine County

Pipestone County

Polk County

Pope County

Ramsey County

Red Lake County

Redwood County

Renville County

Rice County

Rock County

Roseau County

Saint Louis County

Scott County

Sherburne County

Sibley County

Stearns County

Steele County

Stevens County

Swift County

Todd County

Traverse County

Wabasha County

Wadena County

Waseca County

Washington County

Watonwan County

Wilkin County

Winona County

Wright County

Yellow Medicine County