CALGARY -- Dougie Hamilton scored with 2:19 remaining, and Chad Johnson saved a breakaway with eight seconds left to lift the Calgary Flames to a 3-2 win against the San Jose Sharks at Scotiabank Saddledome on Wednesday.
Hamilton scored short side on Sharks goaltender Aaron Dell to break a 2-2 tie. Johnson denied Sharks forward Mikkel Boedker on a shorthanded breakaway in the final seconds.
"I think everybody was pretty shocked," Johnson said. "We've got a power play and all of a sudden, eight seconds left, a guy's on a breakaway from the blue line. You've kind of just try to stay focused and stay with him and thankfully nothing came of it."
WATCH: All Sharks vs. Flames highlights
Johnson, who made 25 saves, also stopped Boedker on a penalty shot at 14:33 of the third period.
"I played with him [with the Phoenix Coyotes], so I tried to go back in the memory log there and just try to remember what he did," Johnson said. "He had two good looks there, but I got lucky and made the saves."
Video: SJS@CGY: Hamilton scores through traffic late in 3rd
Matthew Tkachuk had a goal and an assist, and Michael Frolik scored for the Flames (23-19-2), who have won six of the past nine games and are 13-6-0 in their past 19.
"I think for us, we've just got to try to win every game," Hamilton said. "Right now it's tough to move up the standings, [but] we've got to do it now instead of trying to do it later in the season."
Logan Couture and Brent Burns scored, and Dell made 25 saves for the Sharks (25-15-2), who split a two-game road trip after winning 5-3 at the Edmonton Oilers on Tuesday.
Video: SJS@CGY: Couture redirects Burns' pass for PPG in 1st
"You don't like to give away points," Burns said. "That's all that matters."
Couture gave the Sharks a 1-0 lead at 9:40 of the first period when he redirected Burns' point shot on the power play past Johnson.
Frolik tied it 1-1 at 11:22, but Burns shot through a screen by Johnson's blocker at 16:06 to restore San Jose's lead. Burns has two goals and seven assists during a four-game point streak and is the first Sharks defenseman to have four consecutive multipoint games.
Video: SJS@CGY: Tkachuk deflects Backlund's shot in for PPG
"You try to get the points every night," Burns said. "Tonight we didn't. You have to come back. That's all that matters to us. We don't care about the other stuff."
Tkachuk tipped Mikael Backlund's wrist shot by Dell with 31.7 seconds remaining in the second period to tie it 2-2.
Goal of the game
Burns sent a slap-pass into the slot that Couture redirected by Johnson's legs to put San Jose up 1-0.
Video: SJS@CGY: Burns beats Johnson with seeing-eye wrister
Save of the game
Johnson got his left pad out to deny Boedker's backhand-forehand deke on a penalty shot to keep the game tied 2-2 with 5:27 remaining in the third period.
Video: SJS@CGY: Johnson makes pad save on penalty shot
Highlight of the game
Dell made the initial save on Matt Stajan's redirect and followed it up with a toe save on Tkachuk's rebound attempt and a third try by Garnet Hathaway to keep the game tied 2-2 at 9:55 of the third period.
Video: SJS@CGY: Dell comes up big, turns away Flames in 3rd
Unsung performance of the game
Sharks defenseman Marc-Edouard Vlasic played a season-high 27:57 and shared the Sharks lead with Boedker with three blocked shots.
They said it
"It was kind of just like a unique situation. I don't think we've ever had that before. We're definitely going to learn from that one. Good thing Chad came up big again." -- Flames defenseman Dougie Hamilton on Chad Johnson's late-game breakaway save
Video: SJS@CGY: Johnson rejects Boedker's late breakaway
"You would've liked a different outcome. The penalty shot is always difficult. You come down and you feel you have the right move and you just ride it out. He's a goalie that stays back and is patient. Then the last one there with [eight] seconds left, it hit him and went wide. It's something I would like to change, but it's good to have those opportunities and get those chances. It's what you want as a player. But a different outcome would've been nice." -- Sharks forward Mikkel Boedker
Need to know
Sharks defenseman Tim Heed, 25, made his NHL debut. ... San Jose defenseman Mirco Mueller took two shifts totaling 1:09, but was not on the pre-game list submitted to the official scorer and was ineligible to play, per NHL rule 5.2. The Sharks played the remainder of the game with five defensemen. ... Flames forward Micheal Ferland left late in the second period with a lower-body injury.
Sharks: Host the St. Louis Blues on Saturday (10:30 p.m. ET; CSN-CA, FS-MW, NHL.TV)
Flames: Host the New Jersey Devils on Friday (9 p.m. ET; SNW, MSG+ 2, NHL.TV)
Video: Johnson comes up big in 3rd as Flames win, 3-2