The United States grabbed a last-gasp extra-time winner to seal their place in the women's Olympics football final for the fifth successive tournament.
Not even a hat-trick from Canada captain Christine Sinclair - the first against USA for 11 years - could deny the Americans their place in Thursday's showdown at Wembley.
That match will now be a repeat of last year's World Cup final in which Japan triumphed on penalties following a 2-2 draw at the end of 120 minutes.
Another shootout was on the cards at Old Trafford until, in the third minute of injury time at the end of extra time, Alex Morgan sent a looping 10-yard header over goalkeeper Erin McLeod to break Canadian hearts.
John Herdman's team took the lead three times, but three times they were pegged back to force the additional 30 minutes.
It was Canada who grabbed the only goal of the first half courtesy of a superbly-worked 22nd-minute move. Marie-Eve Nault's through ball found Melissa Tancredi on the edge of the area for a lay-off into the path of Sinclair who proceeded to turn inside Kelley O'Hara before firing home from 10 yards.
The United States failed to register a single shot on target in the opening half, their best efforts two headers narrowly wide from Morgan and Abby Wambach.
But 10 minutes after the restart, Pia Sundhage's side were level in bizarre fashion, with Megan Rapinoe aptly scoring an 'Olympic goal' direct from a corner curled into the near post.
Then came a burst of four goals in 13 minutes, with two Sinclair headers to complete her hat-trick and take her tally to 143 goals for her country, sandwiching a stunning 16-yard strike from Rapinoe.
But in the 80th minute Wambach also notched up her 143rd goal with a spot-kick after Nault was penalised for handling a free-kick from inside the area from Rapinoe.
Morgan ultimately emerged the heroine to give USA their 43rd win in 50 meetings with Canada and keep her team on course for a fourth Olympic gold medal.