Stephanie Labbe was the penalty shoot-out hero as Canada took gold in their maiden Olympic final appearance following a 1-1 draw with Sweden.
Stina Blackstenius' first-half opener had the Scandinavians ahead but Jessie Fleming restored parity with a spot-kick after half-time when VAR intervened for a foul on Christine Sinclair.
Kadeisha Buchanan proved Canada's last-ditch hero with a clearance off the line to take the game to extra-time before Labbe's two saves secured a 3-2 triumph in the shoot-out.
Kosovare Asllani did the initial work for Sweden's opener, dispossessing Canada midfielder Quinn before rolling to Blackstenius, whose first-time attempt benefited from a slight deflection to find the back of the net.
Sinclair, whose 187 goals for Canada make her the all-time leading goalscorer in international football, nipped in front of Amanda Ilestedt and, after consulting VAR, Fleming levelled things up with a low spot-kick.
Asllani spurned a glorious opportunity to seal gold with a minute to go as she saw her effort cleared off the line by Buchanan, sending the final to extra-time and subsequently penalties with neither side finding a winner in the additional 30 minutes.
Sweden failed with their opening penalty, Asllani hammering into the right-hand post, before Fleming coolly slotted in Canada's first to gain an early advantage.
That lead quickly faded away, however, when Ashley Lawrence saw her effort saved and both Nathalie Bjorn and Olivia Schough converted for the Swedes.
Swedish veteran Caroline Seger had the chance to secure glory with the decisive strike, despite Labbe's save against Anna Anvegard, but she blasted over, sending the shoot-out to sudden death after Deanne Rose found the top right corner.
Labbe produced another stop from Jonna Andersson, teeing up Julia Gross for victory and she made no mistake, finding the bottom left corner to seal gold after consecutive bronzes in 2012 and 2016.
In the men's football, Mexico recovered from semi-final shoot-out heartbreak against Brazil to beat Japan 3-1 in Friday's bronze-medal match.
Sebastian Cordova netted the opener and provided the second for Johan Vasquez before Alexis Vega put the game out of the host nation's reach, despite Kaoru Mitoma grabbing a late consolation.