Grand Rapids' 3-2 upset victory over Eden Prairie sets up the first greater Minnesota title game since 2007.

No. 5 seed Grand Rapids (21-8-1) defeated No. 1 seed and top-ranked Eden Prairie (22-5-2) in the second Class 2A semifinal Friday at Xcel Energy Center. The Thunderhawks advance to play Moorhead at 7 p.m. Saturday in the state championship game.

The last time two teams from outside the metro area met in the title game was in 2007 when Roseau defeated Grand Rapids.

On Friday, the Thunderhawks got the go-ahead goal at 7:56 of the third period. Keaghan Graeber lost his feet, yet slid the puck toward Connor Stefan to bury.

Eden Prairie had trailed in the third period in all three of its previous postseason games but, for the first time, could not come back. The loss ends Casey Mittelstadt's quest to bring the Eagles their third state championship. The future NHL first-round pick stayed home and led a talented team on a whirlwind season that ended two victories short.

Each team scored once in the first two periods.

Eden Prairie to a 1-0 lead at 5 minutes, 15 second of the first as Ryan Lesko followed the rebound of his own shot and smacked the puck into the Grand Rapids net.

Puck luck helped the Thunderhawks return serve. John Stampohar's low-angle shot deflected off Mittelstadt and past goalie Nick Wienceck with a little more than one minute left.

The Grand Rapids student section chanted, "Thank you, Casey."

Grand Rapids broke the 1-1 tie in the second period as Graeber pushed a loose puck past Eagles' defenseman Nick Leivermann, went to the net and scored.

From there, both teams saw golden scoring chances produce nothing but frustration. Then Mittelstadt found an opening and got off a shot that was blocked. But linemate Jack Jensen followed the play and swept the loose puck home for a 2-2 tie at 14:33 of the second period.

Eden Prairie defeated Grand Rapids 6-2 in the state semifinals last season.