Calgary jumped on Saskatchewan early and held off a wild final-minute push to open the CFL preseason with a 20-15 win at McMahon Stadium.
The Calgary Stampeders survived a frantic late charge from the Saskatchewan Roughriders, leaning on an early 70-yard touchdown bomb and a Josh Love goal-line plunge to build a cushion that nearly disappeared in the closing seconds. Brayden Schager's late 20-yard touchdown run brought the Riders within five, but a failed two-point try sealed the result at McMahon Stadium on a sunny, 10°C afternoon.
Box Score
Team | Q1 | Q2 | Q3 | Q4 | OT | Final |
|---|---|---|---|---|---|---|
Saskatchewan Roughriders | 3 | 3 | 0 | 9 | 0 | 15 |
Calgary Stampeders | 7 | 7 | 3 | 3 | 0 | 20 |
How It Happened
First quarter: Calgary struck first and struck big. On 2nd-and-20 from his own 40, Vernon Adams Jr. uncorked a deep middle strike to Jalen Philpot, who hauled it in at the Saskatchewan 20 and walked into the end zone for a 70-yard touchdown. Jonathan Kim answered with a 45-yard field goal to make it a 7-3 Calgary lead after one.
Second quarter: Alex Hale connected from 28 yards to pull the Riders within one, but Calgary marched 64 yards on six plays and Josh Love punched it in from a yard out with 1:22 left in the half. Jude McAtamney missed a 63-yard try as time expired — and Mathew Sexton ripped off a 53-yard return on the miss to flip field position. Halftime: 14-6 Stamps.
Third quarter: A field-position grind. McAtamney drilled a 37-yarder to push the lead to 17-6 after Calgary chewed nearly six minutes off the clock.
Fourth quarter: Kim trimmed it to 17-9 from 33 yards. Dawson Hodge answered with a 43-yarder to make it 20-9. Then Schager went to work. After a turnover on downs and some back-and-forth, Saskatchewan got the ball back at their own 36 with 1:17 to play. Schager hit Shemar McBean for 29 yards, found Peter Boersch for 13 on a critical third-and-10, then ran in from 20 yards out with five seconds left. The two-point try failed and the ensuing kickoff was returned out of bounds to end it.
Top Performers
Calgary Stampeders
Jalen Philpot (WR) — 2 rec, 83 yds, 1 TD (long of 70)
Vernon Adams Jr. (QB) — 3/5, 87 yds, 1 TD, 1 INT
Josh Love (QB) — 5/10, 68 yds; 2 carries, 22 yds, 1 rush TD
Deonta McMahon (RB) — 5 carries, 29 yds
Jordan Polk (DB) — 6 total tackles
Kyle Wilson (LB) — 1 INT
Elijah Hills (DL) — 4 tackles, 1 sack
Saskatchewan Roughriders
Brayden Schager (QB) — 10/18, 139 yds passing; 5 carries, 41 yds, 1 rush TD
Mathew Sexton (WR) — 5 rec, 78 yds; 53-yard FGM return
Abdul Janneh (WR) — 3 rec, 44 yds
Juwann Winfree (WR) — 4 rec, 35 yds
Juju Hughes (DB) — 7 total tackles
Nelson Lokombo (DB) — 1 INT (end zone takeaway)
Jonathan Kim (K) — 2/2 FG, long of 45
Team Stats
Stat | Saskatchewan | Calgary |
|---|---|---|
Total Yards | 329 | 325 |
Passing | 21/37, 248 yds | 12/21, 222 yds, 1 TD |
Rushing | 19 att, 104 yds, 1 TD | 21 att, 112 yds, 1 TD |
First Downs | 21 | 16 |
Time of Possession | 32:44 | 27:16 |
Turnovers | 3 | 1 |
Penalties | 4-40 | 9-81 |
Sacks | 3-9 | 3-23 |
Quick Hits
Discipline cost Calgary — 9 accepted penalties for 81 yards, including a 21-yard pass interference on Devodric Bynum and a no-yards 15 on Anthony Johnson Jr. that handed the Riders prime field position.
Plenty of QB rotation — Calgary used four quarterbacks (Adams Jr., Love, Wooldridge, Criswell); Saskatchewan rolled with three (Coan, Stevens, Schager). Coan threw a pick before giving way.
Philpot was the difference — Two catches, 83 yards: a 70-yard touchdown bomb and a 13-yarder earlier in the same drive. Take that drive away and Calgary's offense looks pedestrian.
Schager's audition — The Riders' backup put up a 139-yard near-comeback line in relief and led both teams in rushing with 41 yards. A name to watch on the depth chart.
Special teams swing — Saskatchewan averaged 51.6 yards per punt to Calgary's 46.8, and Mathew Sexton's 53-yard field-goal-miss return was the biggest hidden-yardage play of the night.
Defensive leaders — Hughes (7) and Polk (6) led their respective sides in tackles, both showing well in coverage.

