Apex Vipers 28, Granite Grizzlies 21
Week 4 · Regular season · round 10 · Tuesday 20 October 2026
| Team | 1 | 2 | 3 | 4 | Final |
|---|---|---|---|---|---|
| GRZ Granite Grizzlies | 3 | 10 | 0 | 8 | 21 |
| APX Apex Vipers | 0 | 7 | 14 | 7 | 28 |
Game recap
The Apex Vipers held off the Granite Grizzlies 28-21 in round 10 of Week 4. The lead changed hands 3 times.
The Grizzlies opened the scoring with a 34-yard field goal by Tariq Pellegrini with 2:20 left in the first quarter. At the break the Grizzlies were up 13-7. Then came the fourth quarter: a 9-yard touchdown pass from Mason Okafor-Reid to Pavel Garrow for the Vipers (0:43 left, 28-13); a 1-yard touchdown pass from Reid Callahan to Yannick Ingram for the Grizzlies (0:09 left, 28-21).
The biggest swing of the game came with 2:50 left in the third quarter: an 11-yard touchdown pass from Mason Okafor-Reid to Ravi Castellano. It moved the Vipers' chance of winning from 45% to 66%.
The standout was Mason Okafor-Reid (QB, Vipers), with 26 of 37 passing for 269 yards, 2 TD; 4 carries for 10 yards and 2 TD. Elsewhere, Luther Banks (Vipers) had 11 carries for 54 yards; 4 catches for 44 yards; Pavel Garrow (Vipers) had 10 catches for 105 yards and 1 TD; Reid Callahan (Grizzlies) had 20 of 35 passing for 245 yards, 1 TD; 1 carry for 3 yards; Jonah Whitfield (Grizzlies) had 18 carries for 99 yards; 3 catches for 16 yards.
Before kickoff, the Vipers' game plan was on offense: attack the zones, throw it more, target Pavel Garrow; on defense: bracket Bastien Lachance (Pavel Garrow finished with 10 catches for 105 yards and 1 TD). Meanwhile, the Grizzlies' game plan was on offense: attack the zones, target Yannick Ingram; on defense: bracket Wendell Garrow (Yannick Ingram finished with 3 catches for 48 yards and 1 TD).
The Vipers move to 7-1-2 and the Grizzlies to 6-4 this week.
Scoring summary
| Time | Team | Play | GRZ-APX |
|---|---|---|---|
| Q1 2:20 | Grizzlies | A 34-yard field goal by Tariq Pellegrini | 3-0 |
| Q2 3:45 | Grizzlies | A 38-yard field goal by Tariq Pellegrini | 6-0 |
| Q2 2:32 | Vipers | A 2-yard touchdown run by Mason Okafor-Reid (extra point) | 6-7 |
| Q2 0:30 | Grizzlies | A 7-yard touchdown run by Fabian Norcross (extra point) | 13-7 |
| Q3 2:50 | Vipers | An 11-yard touchdown pass from Mason Okafor-Reid to Ravi Castellano (extra point) | 13-14 |
| Q3 0:33 | Vipers | A 13-yard touchdown run by Mason Okafor-Reid (extra point) | 13-21 |
| Q4 0:43 | Vipers | A 9-yard touchdown pass from Mason Okafor-Reid to Pavel Garrow (extra point) | 13-28 |
| Q4 0:09 | Grizzlies | A 1-yard touchdown pass from Reid Callahan to Yannick Ingram (2-pt conversion) | 21-28 |
Team stats
| GRZ | APX | |
|---|---|---|
| Total yards | 381 | 371 |
| Passing yards | 245 | 269 |
| Rushing yards | 136 | 102 |
| Completions | 20 of 35 | 26 of 37 |
| Offensive plays | 63 | 59 |
| Third downs | 5 of 11 | 5 of 8 |
| Fourth downs | — | — |
| Turnovers | 0 | 0 |
| Sacks allowed | 4 | 2 |
| Time of possession | 7:28 | 8:32 |
Granite Grizzlies box score
Passing
| Player | C/ATT | YDS | TD | INT |
|---|---|---|---|---|
| Reid Callahan | 20/35 | 245 | 1 | 0 |
Rushing
| Player | CAR | YDS | TD | LNG |
|---|---|---|---|---|
| Jonah Whitfield | 18 | 99 | 0 | 13 |
| Fabian Norcross | 4 | 23 | 1 | 7 |
| Fabian Brennan | 1 | 11 | 0 | 35 |
| Reid Callahan | 1 | 3 | 0 | 3 |
Receiving
| Player | REC | YDS | TD | TGT |
|---|---|---|---|---|
| Fabian Brennan | 4 | 68 | 0 | 4 |
| Marlon Esquivel | 5 | 61 | 0 | 12 |
| Bastien Lachance | 5 | 52 | 0 | 5 |
| Yannick Ingram | 3 | 48 | 1 | 8 |
Defense
| Player | TK | SK | INT | PD |
|---|---|---|---|---|
| Bram Bellamy | 21 | 0 | 0 | 0 |
| Cassius Castellan | 9 | 0 | 0 | 1 |
| Adrien Jovanovic | 5 | 0 | 0 | 0 |
| Ivo Zamora | 0 | 1 | 0 | 0 |
| Ivo Coventry | 0 | 1 | 0 | 0 |
| Dorian Whitlock | 3 | 0 | 0 | 1 |
Kicking
| Player | FG | LNG | XP |
|---|---|---|---|
| Tariq Pellegrini | 2/2 | 38 | 1/1 |
Apex Vipers box score
Passing
| Player | C/ATT | YDS | TD | INT |
|---|---|---|---|---|
| Mason Okafor-Reid | 26/37 | 269 | 2 | 0 |
Rushing
| Player | CAR | YDS | TD | LNG |
|---|---|---|---|---|
| Luther Banks | 11 | 54 | 0 | 22 |
| Nils Yardley | 5 | 38 | 0 | 11 |
| Mason Okafor-Reid | 4 | 10 | 2 | 13 |
Receiving
| Player | REC | YDS | TD | TGT |
|---|---|---|---|---|
| Pavel Garrow | 10 | 105 | 1 | 10 |
| Wendell Garrow | 5 | 56 | 0 | 7 |
| Ravi Castellano | 6 | 56 | 1 | 11 |
| Luther Banks | 4 | 44 | 0 | 4 |
Defense
| Player | TK | SK | INT | PD |
|---|---|---|---|---|
| Soren Falkner | 23 | 0 | 0 | 0 |
| Matteo Falkner | 0 | 4 | 0 | 0 |
| Wendell Pellegrini | 7 | 0 | 0 | 0 |
| Hector Castellan | 4 | 0 | 0 | 0 |
| Matteo Zamora | 2 | 0 | 0 | 0 |
| Jonas Draven | 2 | 0 | 0 | 0 |
Kicking
| Player | FG | LNG | XP |
|---|---|---|---|
| Kasimir Eriksen | 0/0 | 0 | 4/4 |
Watch the replay
Every play of this game can be replayed on the big screen, with the play calls, the win probability and the commentary: replay Apex Vipers 28, Granite Grizzlies 21 on Snapline. More about the teams: Apex Vipers · Granite Grizzlies.