Game recap
Dolphins @ 49ers
2026 Wk 2 · SF 35, MIA 13
Purdy went 20 of 22 and the 49ers scored three touchdowns in ten third quarter minutes.
Purdy went 20 of 22 for 287 yards: the tenth 90 percent, 250 yard game since 1999, and he owns two of them.
RareEvery regular season game since 1999 with 20+ attempts, 90%+ completions and 250+ passing yards
| Season | Wk | Team | Passer | Comp/Att | Pct | Yds | TD | INT |
|---|---|---|---|---|---|---|---|---|
| 2019 | 15 | NO | Drew Brees | 29/30 | 96.7 | 307 | 4 | 0 |
| 2018 | 12 | LAC | Philip Rivers | 28/29 | 96.6 | 259 | 3 | 0 |
| 2018 | 12 | TEN | Marcus Mariota | 22/23 | 95.7 | 303 | 2 | 0 |
| 2023 | 4 | SF | Brock Purdy | 20/21 | 95.2 | 283 | 1 | 0 |
| 2024 | 10 | ARI | Kyler Murray | 22/24 | 91.7 | 266 | 1 | 0 |
| 2024 | 3 | WAS | Jayden Daniels | 21/23 | 91.3 | 254 | 2 | 0 |
| 2021 | 7 | LV | Derek Carr | 31/34 | 91.2 | 323 | 2 | 1 |
| 2026 | 2 | SF | Brock Purdy | 20/22 | 90.9 | 287 | 2 | 0 |
| 2018 | 2 | LV | Derek Carr | 29/32 | 90.6 | 288 | 1 | 0 |
| 2025 | 17 | NE | Drake Maye | 19/21 | 90.5 | 256 | 5 | 0 |
That is the complete list across 28 seasons: ten games, eight passers. Purdy and Derek Carr are the only two with more than one, and Purdy's other entry (20 of 21 against Arizona in 2023) also came in a 49ers home game. He added 3 carries for 30 yards and a 2 yard touchdown scramble, and was not sacked on 22 dropbacks.
Why it matters. A 90 percent completion day usually comes with a short, checkdown-heavy passing chart. Purdy's did not: 287 yards on 22 throws is 13.0 yards per attempt, and the two incompletions were the only failed dropbacks in a game with zero sacks and zero interceptions. Two entries on a ten game list is the kind of repeat that separates a hot afternoon from a passer whose accuracy ceiling is structurally high.
San Francisco's 1.06 EPA per dropback is the 21st best passing game of 14,346 since 1999. Miami's defense was on the field for three of the top 21.
ComparisonHighest team EPA per dropback in a single game, 20+ dropbacks, 1999 to 2026 (regular season and playoffs)
| Rank | Season | Wk | Offense | Defense | Dropbacks | EPA/dropback |
|---|---|---|---|---|---|---|
| 1 | 2023 | 17 | BAL | MIA | 23 | 1.444 |
| 2 | 2019 | 1 | BAL | MIA | 27 | 1.407 |
| 3 | 2002 | 10 | IND | PHI | 23 | 1.310 |
| 4 | 2000 | 17 | BUF | SEA | 25 | 1.305 |
| 5 | 2007 | 14 | IND | BAL | 22 | 1.234 |
| 21 | 2026 | 2 | SF | MIA | 22 | 1.060 |
Context: 2025 regular season pass EPA per dropback
| Side | Dropbacks | EPA/dropback |
|---|---|---|
| SF offense | 603 | 0.159 |
| MIA defense (allowed) | 555 | 0.126 |
The 49ers' passing game produced 1.06 expected points per dropback across 22 attempts, with no sacks. That lands at 21st of 14,346 team games with at least 20 dropbacks since 1999, the top 0.15 percent. Miami was the defense in both of the top two entries (Baltimore in 2019 and 2023) and now in the 21st. San Francisco's own 2025 baseline was 0.159 per dropback, so this was roughly 6.7 times its full season rate.
Why it matters. EPA per dropback is the single cleanest read on how much a passing game moved a team toward points, and a 1.06 mark is roughly six to seven times what the same offense averaged over a whole 2025 season. Small samples produce outliers, but 22 dropbacks with two incompletions and no sacks is the kind of afternoon where the number is describing what happened rather than noise. The Miami thread is real but cross-era: three separate Dolphins defenses, not one, sit on this list.
Three touchdowns in exactly ten minutes of the third quarter took an 8 point game to 35-6.
TrendScoring sequence, third quarter
| Clock | Team | Play | Score (SF-MIA) | SF win prob after |
|---|---|---|---|---|
| 15:00 | Start of half | 14-6 | 83.5% | |
| 13:13 | SF | Purdy 12 yd pass to Kittle | 21-6 | 91.0% |
| 5:51 | SF | Purdy 6 yd pass to Juszczyk | 28-6 | 99.1% |
| 3:13 | SF | McCaffrey 1 yd run | 35-6 | 99.9% |
Third quarter offense, pass and run plays only
| Team | Plays | Yards | TD | EPA/play |
|---|---|---|---|---|
| SF | 16 | 199 | 3 | 0.970 |
| MIA | 12 | 22 | 0 | -0.863 |
The half opened with a 40 yard Purdy to Kittle strike on the first snap, and the three touchdown drives took four, eight and two plays. Miami's three third quarter possessions produced a sack, two punts and an aborted punt snap that handed San Francisco the ball at the Miami 28. The game went from 14-6 to 35-6 between the 13:13 and 3:13 marks.
Why it matters. At halftime this was an 8 point game in which Miami had out-gained San Francisco 165 to 125 on 35 plays to 20. The third quarter is where the result was decided, and it was decided by one side of the ball at a time: the 49ers averaged nearly a full expected point per snap while the Dolphins lost close to a point per snap. A 16 percentage point win probability jump in ten minutes, against a 14 point lead, is what a game breaking open looks like on the play-by-play.
Miami reached the San Francisco 6 and the San Francisco 2 and kicked both times. The 49ers went five for five on red zone touchdowns.
AnomalyEvery red zone possession in this game
| Qtr | Team | Deepest point | Result | Points |
|---|---|---|---|---|
| 1 | SF | MIA 1 | McCaffrey 1 yd TD run | 7 |
| 2 | MIA | SF 6 | Two sacks, 28 yd field goal | 3 |
| 2 | SF | MIA 2 | Purdy 2 yd TD scramble | 7 |
| 2 | MIA | SF 2 | Run for -1, sack (penalty), 24 yd field goal | 3 |
| 3 | SF | MIA 12 | Purdy 12 yd TD pass to Kittle | 7 |
| 3 | SF | MIA 6 | Purdy 6 yd TD pass to Juszczyk | 7 |
| 3 | SF | MIA 1 | McCaffrey 1 yd TD run | 7 |
Miami's first trip had first and goal from the 6 before a sack split by Fred Warner and Upton Stout and a second sack by Robert Height pushed it back to the 10. Its second trip had second and goal from the 2 with 1:04 left in the half, lost a yard, took another sack that was wiped out by penalty, and settled for a 24 yard field goal at 0:02. Miami never entered the red zone again; its only touchdown came on a 77 yard pass from outside it with 2:41 to play.
Why it matters. The half time margin was 14-6 and both Miami field goals came from inside the 10, so the difference between two goal line touchdowns and two field goals was the entire half time gap. Two of Malik Willis's four sacks, plus a third wiped out by penalty, came inside the 10, which is where a mobile quarterback's escape lanes are shortest and the 49ers' pass rush had the least ground to cover. San Francisco's five for five, by contrast, includes three scores of 6 yards or shorter, the kind of conversions that come from personnel groupings rather than explosive plays.
The 49ers threw 22 times for 287 yards and ran 25 times for 97. McCaffrey's ten carries gained 23 yards and two touchdowns.
SplitPass versus run, both offenses (dropbacks include sacks)
| Team | Type | Plays | Yards | Yds/play | EPA/play | Success% |
|---|---|---|---|---|---|---|
| SF | Pass | 22 | 287 | 13.0 | 1.060 | 77.3% |
| SF | Run | 25 | 97 | 3.9 | -0.068 | 40.0% |
| MIA | Pass | 27 | 182 | 6.7 | 0.165 | 37.0% |
| MIA | Run | 29 | 102 | 3.5 | -0.156 | 44.8% |
San Francisco rushing and receiving lines
| Player | Carries | Rush yds | Rush TD | Targets | Rec | Rec yds | Rec TD |
|---|---|---|---|---|---|---|---|
| Brock Purdy | 3 | 30 | 1 | 0 | 0 | 0 | 0 |
| Kaelon Black | 7 | 25 | 0 | 0 | 0 | 0 | 0 |
| Christian McCaffrey | 10 | 23 | 2 | 4 | 4 | 43 | 0 |
| Jordan James | 4 | 15 | 0 | 0 | 0 | 0 | 0 |
| George Kittle | 0 | 0 | 0 | 4 | 4 | 80 | 1 |
| Mike Evans | 0 | 0 | 0 | 3 | 3 | 54 | 0 |
| Demarcus Robinson | 0 | 0 | 0 | 3 | 3 | 34 | 0 |
| Kyle Juszczyk | 0 | 0 | 0 | 2 | 2 | 27 | 1 |
Nearly three quarters of San Francisco's 384 yards from scrimmage came through the air on fewer than half its snaps. The run game was under 4 yards a carry and below zero EPA, yet it produced three of the five touchdowns: McCaffrey scored twice from the 1 and Purdy once from the 2. Kittle's four catches went for 80 yards, the most on either side.
Why it matters. This is the inverse of the 49ers' usual profile, where the run game carries the efficiency and the pass game cashes it in. Here the passing chart did all the moving (13.0 yards per throw against 3.9 per carry) and the run game was reserved for finishing at the goal line. McCaffrey's 23 yards on 10 carries with 2 scores is the clearest example: near zero yardage value, maximum scoring value. Whether Shanahan leans into that pass-first shape or treats it as a one week response to Miami's front is the open question.
The most points San Francisco has ever scored against Miami, in the ninth meeting since 1999. The series still sits 5-4 Miami.
MilestoneEvery Dolphins versus 49ers game since 1999 (all regular season)
| Season | Wk | Result | Margin | Winner |
|---|---|---|---|---|
| 2001 | 14 | SF 21, MIA 0 | 21 | SF |
| 2004 | 12 | MIA 24, SF 17 | 7 | MIA |
| 2008 | 15 | MIA 14, SF 9 | 5 | MIA |
| 2012 | 14 | SF 27, MIA 13 | 14 | SF |
| 2016 | 12 | MIA 31, SF 24 | 7 | MIA |
| 2020 | 5 | MIA 43, SF 17 | 26 | MIA |
| 2022 | 13 | SF 33, MIA 17 | 16 | SF |
| 2024 | 16 | MIA 29, SF 17 | 12 | MIA |
| 2026 | 2 | SF 35, MIA 13 | 22 | SF |
Nine meetings in 28 seasons, and the two teams have alternated wins for the last four of them. San Francisco's 35 tops its previous best of 33 in this series (2022), and the 22 point margin is second only to Miami's 26 point win in 2020. Miami's last two visits to San Francisco, 2012 and 2026, both ended with exactly 13 Dolphins points.
Why it matters. Interconference pairings meet once every four years, so a series record is a slow-moving thing and each result carries more weight than a divisional game. The alternating pattern (MIA, SF, MIA, SF from 2020 on) is a curiosity, but the scoring trend is the substantive part: the 49ers' last three wins in the series came by 14, 16 and 22, while Miami's wins have been getting no more comfortable. Interconference opponents meet once per regular season rotation, so 5-4 stands until the next one.
13 and 13: the third Dolphins team since 1999 to open with 13 or fewer points in both games. The other two finished 4-12 and 5-11.
RareMiami seasons since 1999 with 13 or fewer points in each of the first two games
| Season | Wk 1 | Wk 2 | Final record |
|---|---|---|---|
| 2004 | TEN 17, MIA 7 | CIN 16, MIA 13 | 4-12 |
| 2019 | BAL 59, MIA 10 | NE 43, MIA 0 | 5-11 |
| 2026 | LV 27, MIA 13 | SF 35, MIA 13 | 0-2 so far |
Malik Willis, 2026 by week
| Wk | Opp | Comp/Att | Yds | TD | INT | Sacks taken |
|---|---|---|---|---|---|---|
| 1 | LV | 14/27 | 220 | 0 | 0 | 5 |
| 2 | SF | 14/23 | 197 | 1 | 0 | 4 |
Across 28 Miami seasons this has happened three times, and the two precedents are the 2004 and 2019 teams that went on to win a combined nine games. Willis has been sacked nine times on 50 pass attempts through two weeks. Of his 197 passing yards in this game, 77 came on a single throw to Ryan Miller with 2:41 left and the score 35-6.
Why it matters. Two games is a tiny sample and the 2004 and 2019 comparables were teams in open rebuilds, so this is a flag rather than a forecast. What makes it worth flagging is the shape of the scoring: in this game Miami moved the ball reasonably in the first half (165 yards on 35 plays) and still produced 6 points, which points to a red zone and pass protection problem rather than a pure talent gap. A sack every 6.6 dropbacks (9 on 59) is the number a first year head coach's staff has to fix first.
FanIQ answers any NFL stats question with receipts, on your phone.
Get FanIQ freeGet it on Google Play