NHL
Jarry’s 24-Save Shutout Leads Oilers Past Flames, 4–0
Four Edmonton scorers backed Tristan Jarry’s 24 saves, with Kasperi Kapanen and Alex Formenton striking 21 seconds apart early in the third period.

Tristan Jarry stopped all 24 shots he faced as the Edmonton Oilers beat the Calgary Flames 4–0 on Wednesday, October 28, at Rogers Place. Four different Oilers scored, and Edmonton turned a two-goal lead into a four-goal advantage with goals 21 seconds apart early in the third period.
Mathieu Joseph and Mattias Ekholm scored in the first two periods before Kasperi Kapanen and Alex Formenton added the third-period goals. Connor McDavid and Ryan Nugent-Hopkins each had two assists. Edmonton improved to 9–2–2 with 20 points, while Calgary fell to 5–7–0.
The Flames changed goaltenders after the first period because Devin Cooley had a lower-body injury. Cooley stopped eight of nine shots before Dustin Wolf took over for the final forty minutes and made twenty saves on 23 shots.
Final Score and Scoring Summary
Edmonton defeated Calgary 4–0 in regulation on October 28, 2026, at Rogers Place. The tables below use the reconciled official NHL final records.
| Team | P1 goals | P2 goals | P3 goals | Final goals | P1 shots | P2 shots | P3 shots | Total shots |
|---|---|---|---|---|---|---|---|---|
| Calgary Flames | 0 | 0 | 0 | 0 | 8 | 11 | 5 | 24 |
| Edmonton Oilers | 1 | 1 | 2 | 4 | 9 | 7 | 16 | 32 |
| Period | Elapsed time | Team | Scorer | Assists | Strength | EDM–CGY |
|---|---|---|---|---|---|---|
| 1 | 07:46 | EDM | Mathieu Joseph (official goal video) | Connor McDavid, Evan Bouchard | Even strength | 1–0 |
| 2 | 04:52 | EDM | Mattias Ekholm (official goal video) | Ryan Nugent-Hopkins | Even strength | 2–0 |
| 3 | 00:55 | EDM | Kasperi Kapanen (official goal video) | Connor McDavid, Ryan Nugent-Hopkins | Power play | 3–0 |
| 3 | 01:16 | EDM | Alex Formenton (official goal video) | Jason Dickinson | Even strength | 4–0 |
Times are elapsed within the period. Scorer and assist entries describe this game; season-to-date totals in the underlying scoring feed are not substituted for game totals. Shots on goal include goals.
Team Comparison
| Measure | Calgary Flames | Edmonton Oilers |
|---|---|---|
| Goals | 0 | 4 |
| Shots on goal | 24 | 32 |
| Hits | 19 | 28 |
| Blocked shots | 9 | 12 |
| Giveaways | 16 | 11 |
| Takeaways | 3 | 4 |
| Penalty minutes | 11 | 9 |
| Faceoffs won / total | 29/53 | 24/53 |
| Faceoff win percentage | 54.7% | 45.3% |
| Power-play goals / opportunities | 0/1 | 1/2 |
| Power-play percentage | 0.0% | 50.0% |
| Official power-play time | 02:00 | 02:16 |
| Penalties killed / opportunities | 1/2 | 1/1 |
| Penalty-kill percentage | 50.0% | 100.0% |
| Record after game | 5–7–0 | 9–2–2 |
| Season points after game | 10 | 20 |
Faceoff wins are counted from all 53 official faceoffs. Power-play time is from the official game summary. Penalty-kill success is the opponent’s power-play opportunities minus its power-play goals. Blocked shots are credited opponent blocks; the two play-by-play events explicitly marked teammate-blocked are kept separate. Edmonton’s 32 shots are the reconciled official total.
Edmonton Scores Twice in the Third Period’s Opening 76 Seconds
Joseph opened the scoring at 7:46 of the first period, with McDavid and Evan Bouchard assisting. The Oilers finished the period ahead 1–0 despite Calgary remaining within one shot of Edmonton’s nine-shot total.
Ekholm made it 2–0 at 4:52 of the second, assisted by Nugent-Hopkins. Calgary outshot Edmonton 11–7 in that period, but Jarry kept the Flames off the scoreboard. He had nineteen saves through forty minutes, preserving the two-goal lead before Edmonton’s quick start to the third.
Kevin Bahl’s tripping penalty at 0:39 gave Edmonton a power play. Sixteen seconds later, Kapanen scored with assists from McDavid and Nugent-Hopkins. Formenton followed at 1:16, with Jason Dickinson collecting the assist, to make it 4–0.
Edmonton outshot Calgary 16–5 in the final period and 32–24 overall. Jarry stopped the Flames’ last five shots to complete the shutout. The Oilers finished 1-for-2 on the power play and killed Calgary’s only opportunity.
Cooley’s Injury Forces a Goaltending Change
Colton Dach received a goaltender-interference minor at 19:48 of the first period following contact with Cooley. Calgary’s official game report said Cooley finished the period before Wolf replaced him to start the second. The Flames also reported an upper-body injury to Brennan Othmann.
The Flames Cannot Turn Their Second-Period Shots Into Goals
Ryan Strome led Calgary with four shots on goal. Matt Coronato, Martin Pospisil and Joel Farabee had three apiece. Calgary won 29 of 53 faceoffs and finished with nineteen hits, compared with Edmonton’s 28. The Oilers recorded twelve blocked shots to Calgary’s nine.
McDavid Credits Contributions Throughout the Lineup
Connor McDavid said Edmonton delivered the kind of game it needed before leaving for its New York road trip. “I thought the game was pretty solid. It was what we needed to do tonight,” he said in his postgame interview. He credited contributions throughout the lineup and said the depth players had brought energy, played hard and helped kill penalties.
Jarry framed the result as a step to build on. “I think we just gotta keep growing,” he said in his postgame interview, explaining that the Oilers could keep learning each day and solidify their game against the Eastern Conference opponents ahead.
Calgary Looks for More Traffic at the Net
Flames coach Ryan Huska said Cooley left with a lower-body injury after speaking with the trainer, and he had no further update. Asked whether Calgary had done enough to get to the net, Huska described a tight contest through two periods. “There was not a lot of room on the ice,” he said in his postgame availability. He said some players could have been harder in those situations.
Captain Mikael Backlund also addressed Calgary’s work around the crease. Asked whether the Flames had generated the same net-front pressure as during their winning streak, he said, “We didn’t get enough traffic and bodies around.” Backlund said Edmonton had been more efficient with its chances and had won the special-teams contest in his postgame interview.
Wolf said his preparation stays the same whether he starts or backs up. Asked about entering without a warmup, he acknowledged the difficulty but said, “You can’t create an excuse around it.” He said teammates rely on him to be at his best whenever he is on the ice in his postgame interview.
Five-on-Five Results Vary by Combination
Edmonton’s shot advantage at five-on-five was 25–24, with a 3–0 advantage in goals. Connor McDavid, Leon Draisaitl and Vasily Podkolzin had the most shared five-on-five time among the Oilers’ forward trios at 13:25. Edmonton outshot Calgary 9–5 during their time together, although neither team scored. Ryan Nugent-Hopkins, Kasperi Kapanen and Colton Dach shared 13:13, with Edmonton outshot 6–4 but ahead 1–0 in goals on Ekholm’s second-period score.
Jason Dickinson, Mathieu Joseph and Alex Formenton shared 9:39, with shots even at four apiece and Formenton supplying the only goal. Joseph’s opening goal came with McDavid and Podkolzin on the ice, but that trio shared just eleven seconds at five-on-five all game. It was a scoring combination during a change, rather than one of Edmonton’s longer-used trios.
Among Calgary’s longer-used combinations, Mikael Backlund, Joel Farabee and Matt Coronato shared 11:29 and held a 10–9 shot advantage, but were on for Ekholm’s goal. Yan Kuznetsov and Zayne Parekh shared 10:23 as a defense pair, with Calgary ahead 8–4 in shots and neither team scoring. The Flames’ most-used pair, Kevin Bahl and Simon Nemec, shared 18:20, with shots 7–3 for Edmonton and Ekholm’s goal against them.
What Comes Next
Calgary returns home to face the Seattle Kraken at Scotiabank Saddledome on Friday, October 30, at 8 p.m. EDT. Edmonton visits the New York Islanders at UBS Arena on Saturday, October 31, at 2 p.m. EDT.
Actual Five-on-Five Combinations
Shared TOI is overlapping ice time with exactly five skaters and a goalie on each team. SF/SA are shots on goal for/against, including goals; GF/GA are goals for/against. The tables list the four forward trios and three defense pairs with the most shared time for each club. Opposing personnel may change during a listed combination’s time. These are actual combinations, rather than lineup projections or shot-attempt totals.
The game contained 53:44 at five-on-five. Brief shifts with two forwards and three defensemen, or four forwards and one defenseman, account for six Edmonton seconds and twenty Calgary seconds; they are excluded from the trio/pair definitions. Calgary’s shot at 10:02 of the second period came with four forwards and one defenseman, so it remains in the team’s 24 five-on-five shots but is unassigned to a Calgary trio or pair. Times come from the official shift records; shots and goal personnel come from the official event report, which also resolves five events at exact shift endpoints. All recorded ice time and period shot totals reconcile with the final box score. Power plays, short-handed play and four-on-four play are excluded.
Forward trios
| Actual combination | Shared TOI | SF | SA | GF | GA |
|---|---|---|---|---|---|
| EDM: Leon Draisaitl, Connor McDavid, Vasily Podkolzin | 13:25 | 9 | 5 | 0 | 0 |
| EDM: Ryan Nugent-Hopkins, Kasperi Kapanen, Colton Dach | 13:13 | 4 | 6 | 1 | 0 |
| EDM: Jason Dickinson, Mathieu Joseph, Alex Formenton | 9:39 | 4 | 4 | 1 | 0 |
| EDM: Trent Frederic, Isaac Howard, Owen Michaels | 7:42 | 4 | 3 | 0 | 0 |
| CGY: Ryan Strome, Martin Pospisil, Matvei Gridin | 12:02 | 6 | 5 | 0 | 0 |
| CGY: Mikael Backlund, Joel Farabee, Matt Coronato | 11:29 | 10 | 9 | 0 | 1 |
| CGY: Morgan Frost, Yegor Sharangovich, Aydar Suniev | 7:26 | 2 | 3 | 0 | 1 |
| CGY: Adam Klapka, Jonathan Castagna, Matvei Gridin | 3:09 | 0 | 1 | 0 | 0 |
Defense pairs
| Actual combination | Shared TOI | SF | SA | GF | GA |
|---|---|---|---|---|---|
| EDM: Mattias Ekholm, Evan Bouchard | 16:01 | 7 | 7 | 1 | 0 |
| EDM: Connor Murphy, Ryan Shea | 15:35 | 9 | 8 | 0 | 0 |
| EDM: Ty Emberson, Shakir Mukhamadullin | 15:08 | 5 | 8 | 1 | 0 |
| CGY: Kevin Bahl, Simon Nemec | 18:20 | 3 | 7 | 0 | 1 |
| CGY: Jake Middleton, Zach Whitecloud | 13:59 | 7 | 9 | 0 | 1 |
| CGY: Yan Kuznetsov, Zayne Parekh | 10:23 | 8 | 4 | 0 | 0 |
Complete Penalty Record
| Period | Elapsed time | Team | Player penalized | Infraction | Minutes | Type | Drawn by |
|---|---|---|---|---|---|---|---|
| 1 | 05:04 | EDM | Ty Emberson | Fighting | 5 | Major | Brennan Othmann |
| 1 | 05:04 | CGY | Brennan Othmann | Fighting | 5 | Major | Ty Emberson |
| 1 | 16:09 | CGY | Joel Farabee | Interference | 2 | Minor | Ryan Shea |
| 1 | 19:48 | EDM | Colton Dach | Goalkeeper interference | 2 | Minor | Devin Cooley |
| 3 | 00:39 | CGY | Kevin Bahl | Tripping | 2 | Minor | Leon Draisaitl |
| 3 | 15:37 | EDM | Trent Frederic | Hooking | 2 | Minor | Jonathan Castagna |
| 3 | 15:37 | CGY | Jonathan Castagna | Embellishment | 2 | Minor | Not supplied |
Matching fighting majors and the late matching minors are recorded separately. Penalty minutes do not equal power-play opportunities. The official record does not supply a drawn-by player for Jonathan Castagna’s embellishment penalty.
Complete Skater Statistics
G goals; A assists; P points; +/− plus/minus; PIM penalty minutes; SOG shots on goal; PPG power-play goals; HIT hits; BLK credited opponent shots blocked; GVA giveaways; TKA takeaways; FOW/FOL faceoffs won/lost; FO% faceoff win percentage; TOI time on ice. TOI is minutes:seconds. A starting designation comes only from the official roster report; it does not establish later lines or defensive pairs. A 0.0% faceoff display with FOW/FOL of 0/0 means no faceoff attempts.
| Player | # | Pos. | Started | G | A | P | +/− | PIM | SOG | PPG | HIT | BLK | GVA | TKA | FOW | FOL | FO% | TOI | Shifts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mikael Backlund | 11 | C | Yes | 0 | 0 | 0 | -1 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 9 | 6 | 60.0% | 18:32 | 23 |
| Morgan Frost | 16 | C | No | 0 | 0 | 0 | -2 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 6 | 3 | 66.7% | 13:19 | 19 |
| Yegor Sharangovich | 17 | C | No | 0 | 0 | 0 | -2 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0.0% | 11:58 | 19 |
| Ryan Strome | 22 | C | No | 0 | 0 | 0 | 0 | 0 | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0.0% | 18:30 | 23 |
| Matt Coronato | 27 | R | Yes | 0 | 0 | 0 | -1 | 0 | 3 | 0 | 0 | 0 | 1 | 0 | 0 | 2 | 0.0% | 18:12 | 25 |
| Jonathan Castagna | 38 | C | No | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 2 | 0 | 1 | 0 | 8 | 3 | 72.7% | 13:18 | 19 |
| Adam Klapka | 43 | R | No | 0 | 0 | 0 | -1 | 0 | 2 | 0 | 7 | 1 | 0 | 0 | 0 | 1 | 0.0% | 14:46 | 18 |
| Aydar Suniev | 61 | L | No | 0 | 0 | 0 | -1 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0.0% | 13:21 | 17 |
| Martin Pospisil | 76 | C | No | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 5 | 0 | 2 | 0 | 6 | 7 | 46.2% | 15:20 | 22 |
| Brennan Othmann | 78 | L | No | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0% | 00:52 | 2 |
| Joel Farabee | 86 | L | Yes | 0 | 0 | 0 | -1 | 2 | 3 | 0 | 1 | 0 | 2 | 0 | 0 | 0 | 0.0% | 16:48 | 24 |
| Matvei Gridin | 92 | R | No | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 2 | 0 | 0 | 0.0% | 22:31 | 28 |
| Kevin Bahl | 7 | D | No | 0 | 0 | 0 | -1 | 2 | 0 | 0 | 1 | 3 | 1 | 0 | 0 | 0 | 0.0% | 22:43 | 26 |
| Zayne Parekh | 19 | D | No | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0.0% | 17:17 | 23 |
| Zach Whitecloud | 28 | D | Yes | 0 | 0 | 0 | -1 | 0 | 1 | 0 | 0 | 2 | 2 | 0 | 0 | 0 | 0.0% | 19:38 | 24 |
| Yan Kuznetsov | 37 | D | No | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 2 | 0 | 0 | 0 | 0.0% | 15:14 | 21 |
| Jake Middleton | 55 | D | Yes | 0 | 0 | 0 | -2 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0.0% | 19:49 | 25 |
| Simon Nemec | 71 | D | No | 0 | 0 | 0 | -2 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0.0% | 23:36 | 24 |
| Player | # | Pos. | Started | G | A | P | +/− | PIM | SOG | PPG | HIT | BLK | GVA | TKA | FOW | FOL | FO% | TOI | Shifts |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Trent Frederic | 10 | C | No | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 2 | 0.0% | 11:16 | 18 |
| Jason Dickinson | 16 | C | No | 0 | 1 | 1 | 1 | 0 | 2 | 0 | 4 | 0 | 0 | 0 | 3 | 4 | 42.9% | 13:00 | 21 |
| Mathieu Joseph | 21 | R | No | 1 | 0 | 1 | 2 | 0 | 2 | 0 | 3 | 2 | 0 | 0 | 0 | 0 | 0.0% | 13:12 | 21 |
| Alex Formenton | 26 | L | No | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0.0% | 12:12 | 21 |
| Leon Draisaitl | 29 | C | No | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 2 | 1 | 8 | 1 | 88.9% | 19:06 | 23 |
| Colton Dach | 34 | C | Yes | 0 | 0 | 0 | 1 | 2 | 2 | 0 | 1 | 0 | 2 | 0 | 0 | 1 | 0.0% | 16:50 | 24 |
| Kasperi Kapanen | 42 | R | Yes | 1 | 0 | 1 | 1 | 0 | 2 | 1 | 3 | 0 | 1 | 0 | 0 | 0 | 0.0% | 18:06 | 24 |
| Owen Michaels | 43 | R | No | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 5 | 8 | 38.5% | 10:39 | 19 |
| Isaac Howard | 53 | L | No | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0.0% | 10:21 | 15 |
| Vasily Podkolzin | 92 | R | No | 0 | 0 | 0 | 1 | 0 | 2 | 0 | 2 | 2 | 1 | 0 | 0 | 0 | 0.0% | 16:08 | 22 |
| Ryan Nugent-Hopkins | 93 | C | Yes | 0 | 2 | 2 | 1 | 0 | 2 | 0 | 0 | 2 | 0 | 0 | 5 | 10 | 33.3% | 18:23 | 23 |
| Connor McDavid | 97 | C | No | 0 | 2 | 2 | 1 | 0 | 3 | 0 | 1 | 0 | 1 | 1 | 3 | 3 | 50.0% | 18:50 | 24 |
| Evan Bouchard | 2 | D | No | 0 | 1 | 1 | 2 | 0 | 4 | 0 | 0 | 2 | 0 | 1 | 0 | 0 | 0.0% | 22:12 | 25 |
| Connor Murphy | 5 | D | Yes | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 3 | 2 | 3 | 0 | 0 | 0 | 0.0% | 20:35 | 26 |
| Ryan Shea | 6 | D | Yes | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0% | 20:51 | 28 |
| Mattias Ekholm | 14 | D | No | 1 | 0 | 1 | 1 | 0 | 3 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0.0% | 18:44 | 25 |
| Ty Emberson | 49 | D | No | 0 | 0 | 0 | 1 | 5 | 0 | 0 | 2 | 1 | 1 | 0 | 0 | 0 | 0.0% | 16:19 | 22 |
| Shakir Mukhamadullin | 85 | D | No | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0.0% | 19:16 | 26 |
Individual counting statistics are game totals. Jake Middleton is the same player listed as Jacob Middleton in the official roster report. Starting flags are a deployment record, not a ranking or a claim about shared five-on-five time.
Goalie Statistics and Usage
| Goalie | # | Team | Role | TOI | Decision | Saves | Shots faced | SV% | GA | EV saves/shots | PP saves/shots | SH saves/shots | EV GA | PP GA | SH GA | PIM |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Devin Cooley | 1 | CGY | Starter | 20:00 | L | 8 | 9 | 0.889 | 1 | 7/8 | 0/0 | 1/1 | 1 | 0 | 0 | 0 |
| Dustin Wolf | 32 | CGY | Relief | 40:00 | None | 20 | 23 | 0.870 | 3 | 19/21 | 1/2 | 0/0 | 2 | 1 | 0 | 0 |
| Tristan Jarry | 35 | EDM | Starter | 60:00 | W | 24 | 24 | 1.000 | 0 | 24/24 | 0/0 | 0/0 | 0 | 0 | 0 | 0 |
| Matt Tomkins | 90 | EDM | Dressed, did not play | 00:00 | Not applicable | Did not play | Did not play | Did not play | Did not play | Did not play | Did not play | Did not play | Did not play | Did not play | Did not play | Did not play |
SV% is saves divided by shots faced; GA is goals allowed. Strength splits retain the official goalie box-score EV, PP and SH categories for saves/shots faced and goals allowed. EV, PP and SH describe the shooting team’s strength. A displayed 7/8 in a strength column means seven saves on eight shots, not seven goals. Devin Cooley played the first period, making eight saves on nine shots; Dustin Wolf played the final two periods, making 20 saves on 23 shots. The statistical record establishes the change and workloads, not its reason. Matt Tomkins dressed but did not play; his unused status is not presented as a zero-shot performance.
Official Scratches
| Team | Player | # | Position | Status |
|---|---|---|---|---|
| Calgary Flames | Joel Hanley | 44 | D | Scratched |
| Calgary Flames | Maksim Tsyplakov | 72 | R | Scratched |
| Edmonton Oilers | Filip Hallander | 19 | C | Scratched |
| Edmonton Oilers | Max Jones | 46 | L | Scratched |
| Edmonton Oilers | Jake Walman | 96 | D | Scratched |
Maksim Tsyplakov in the roster report is the same official player ID shown as Maxim Tsyplakov in the game-information feed. A scratch designation alone does not establish an injury or its reason.
Official Sources and Next Games
| Club | Fixture | Start, Eastern Time | Venue |
|---|---|---|---|
| Calgary Flames | Seattle Kraken at Calgary Flames | Friday, October 30, 8:00 p.m. EDT | Scotiabank Saddledome |
| Edmonton Oilers | Edmonton Oilers at New York Islanders | Saturday, October 31, 2:00 p.m. EDT | UBS Arena |
Official Game Highlights
Sources and notes
- https://api-web.nhle.com/v1/gamecenter/2026020200/boxscore
- https://api-web.nhle.com/v1/gamecenter/2026020200/landing
- https://api-web.nhle.com/v1/gamecenter/2026020200/play-by-play
- https://api.nhle.com/stats/rest/en/shiftcharts?cayenneExp=gameId=2026020200
- https://www.nhl.com/oilers/news/quick-recap-oilers-vs-flames-10-28-26
- https://www.nhl.com/flames/news/flames-fall-to-oilers-28-10-26




