49ers vs Colts Match Player Stats
Sunday afternoon in Indianapolis turned into a statement game for San Francisco. A 48–27 final barely does justice to how thoroughly the 49ers controlled every phase — and the numbers behind that win tell an even more compelling story.
Below is every significant figure from the 49ers vs Colts match player stats individual performances, team-level comparisons, play-calling tendencies, historical context, and what it all means heading into the playoff stretch.
Full Team Stats at a Glance
San Francisco out-gained Indianapolis by 128 yards and won the turnover battle by a margin of two. Here is the side-by-side breakdown.
| Category | San Francisco | Indianapolis |
| Final Score | 48 | 27 |
| Total Yards | 440 | 312 |
| Passing Yards | 295 | 254 |
| Rushing Yards | 145 | 58 |
| First Downs | 28 | 19 |
| 3rd Down Conv. | 7/11 (63.6%) | 5/10 (50%) |
| Turnovers | 1 | 2 |
| Time of Possession | 33:05 | 26:55 |
| Sacks Allowed | 1 | 3 |
| Punts | 0 | 4 |
The most striking team-level figure is the punt column. San Francisco never gave the ball back on a three-and-out — scoring on nine of eleven drives and sustaining every possession with a mix of designed runs and quick-rhythm passing.
Brock Purdy: A Career-Best Showing
No conversation about the 49ers vs Colts match player stats begins anywhere other than Brock Purdy. The fifth-year quarterback had the kind of afternoon that ends up in franchise highlight reels: 25 completions on 34 attempts (73.5%), 295 yards, five touchdown passes, and a passer rating of 138.8.
The five scoring throws set a new personal record and placed him eighth on the single-game TD list in 49ers history. He found seven different receivers, distributed the ball at every level of the field, and absorbed only one sack. His lone interception came on a tipped pass — the one blemish on an otherwise spotless afternoon.
“He was awesome. Kyle Shanahan, head coach of the San Francisco 49ers, said, “He played incredibly well—it was pretty close to a flawless game.”
Purdy was especially dangerous because he could make grave threats. A 22-yard scoring strike to Demarcus Robinson in the second quarter set the tone, and he revisited that same concept twice more in the third. Indianapolis had no answer.
| Brock Purdy — Passing Line | |
| Completions / Attempts | 25 / 34 |
| Completion Percentage | 73.5% |
| Passing Yards | 295 |
| Touchdown Passes | 5 (Career High) |
| Interceptions | 1 |
| Passer Rating | 138.8 |
| Sacks Taken | 1 |
| Rush Attempts / Yards | 3 / 9 |
Complete 49ers vs Colts Match Player Stats
San Francisco 49ers — Key Contributors
| Player | Position | Stats |
| Brock Purdy | QB | 25/34, 295 yds, 5 TD, 1 INT — Rating: 138.8 |
| Christian McCaffrey | RB | 21 car, 117 yds (5.6 avg), 2 TD rush · 6 rec, 29 yds |
| George Kittle | TE | 7 rec, 115 yds, 1 TD |
| Demarcus Robinson | WR | 4 rec, 48 yds, 1 TD (incl. 22-yd score) |
| Kendrick Bourne | WR | 3 rec, 44 yds |
| Brian Robinson Jr. | RB | 4 car, 20 yds (relief) |
Indianapolis Colts — Key Contributors
| Player | Position | Stats |
| Philip Rivers | QB | 23/36, 277 yds, 2 TD, 1 INT |
| Jonathan Taylor | RB | 16 cars, 46 yards (2.9 average), 1 TD × 2 rec, 10 yards |
| Alec Pierce | WR | 4 rec, 86 yds, 2 TD |
| Tyler Warren | TE | 5 rec, 62 yds |
| Michael Pittman Jr. | WR | 3 rec, 41 yds |
Defense — Standout Plays
| Player | Team | Play |
| Dee Winters | SF (LB) | Interception returned 74 yards for TD |
| Darrell Luter | SF (CB) | Targeted repeatedly; 1 pass interference on Pierce TD |
| SF Front Seven | SF (D) | Held Taylor to 2.9 ypc; forced 2 total turnovers |
Rivers vs. Purdy: Two Quarterbacks, Different Worlds
One of the more fascinating subplots inside the 49ers vs Colts match player stats was watching two quarterbacks separated by nearly two decades of NFL experience operate in the same game. Philip Rivers, making just his second start after returning from a five-year absence at age 44, completed 23 of 36 passes for 277 yards with two touchdowns and one interception.
Rivers actually pushed the ball downfield more aggressively here — roughly 46% of his throws traveled ten or more yards past the line of scrimmage — a clear adjustment from his previous, more conservative appearance. He made several impressive plays and connected with Alec Pierce twice for touchdowns. But the context overwhelmed him: falling behind by 21 points before halftime turned the Colts into a one-dimensional passing team, and San Francisco’s defense was waiting for exactly that.
Purdy operated on a different plane entirely. He averaged 8.7 yards per attempt, spread the ball across seven targets, and never had to do anything uncomfortable. The gap between the two performances wasn’t purely about individual talent — it reflected a team-wide chasm in run support, offensive line health, and scheme execution.
Christian McCaffrey Takes Over
If Purdy was the headline, McCaffrey was the story’s backbone. He finished with 117 rushing yards on 21 carries — a season-best 5.6 yards per attempt — while adding six catches for 29 yards and two receiving touchdowns. That dual-threat workload made for his most complete individual game of 2025.
The 49ers offensive line dominated the point of attack, surrendering only one sack all afternoon. San Francisco consistently ran gap concepts that sealed interior defenders and gave McCaffrey vertical lanes that simply didn’t exist for Indianapolis’ backs. When he wasn’t carrying the ball, he was running option routes out of the backfield that traditional defenses genuinely struggle to account for.
Jonathan Taylor’s Toughest Day of the Season
The flip side of McCaffrey’s big afternoon was Taylor’s worst outing of the 2025 campaign. The All-Pro back managed just 46 yards on 16 carries — a 2.9 yards-per-attempt clip that ranked last among qualified backs that week. His longest gain was seven yards, and the Colts totaled just 58 rushing yards as a team.
Two factors combined to neutralize him. First, San Francisco’s defensive front loaded the box from the opening series, eliminating every wide-zone and inside-zone running lane through sheer numbers. Second, once the Colts fell behind by multiple scores, Steichen had little choice but to abandon the run entirely. Taylor had no room to operate, and forcing 16 carries into that environment yielded predictably poor results.
Context matters here. Taylor remains one of the most complete backs in the league — this performance speaks as much about San Francisco’s defensive front as it does about his own abilities.
Receiving Standouts: Kittle Dominates, Pierce Impresses
George Kittle reminded the league why he is considered the best in-line tight end in football. Seven catches, 115 yards, a touchdown, and a dozen missed tackles forced after the catch — that is a complete tight end performance by any standard. The 115-yard total was his season high, coming against a defense that had circled him on the game plan all week.
For Indianapolis, Alec Pierce was the lone genuine bright spot. He hauled in four passes for 86 yards and both Colts receiving touchdowns — a 20-yarder in the first quarter and a 16-yard score in the third. Pierce exploited 49ers cornerback Darrell Luter consistently, and a costly pass interference penalty on one of his routes extended a drive that resulted in points. On a day when the Colts desperately needed a hero, Pierce answered — but one receiver cannot compensate for an absent ground game.
Coaching Calls: What Decided the Game
Kyle Shanahan — 49ers
- 7-of-11 on third down, the team’s best mark of the season
- Zero punts across eleven possessions
- Balanced attack: 145 rush / 295 pass
- 1-for-1 on fourth-down attempts
- Exploited the middle of the field relentlessly through Kittle
Shane Steichen — Colts
- Forced to abandon the run by halftime
- Rivers attempted 36 passes — far too many for a 44-year-old returnee
- Only 2 red-zone trips all afternoon
- Defensive scheme offered no answer for McCaffrey’s receiving routes
- “We’ve got to be better. We can’t give up that many yards.”
Shanahan’s willingness to stay balanced — never abandoning the run even with a comfortable lead — kept Indianapolis off-balance through the entire second half. Steichen, meanwhile, faced an increasingly impossible task: run a two-dimensional offense against the league’s best defensive front without a functioning ground game. Something had to give, and it gave early.
Historical Series: Where This Game Fits
This rivalry carries a long memory. Indianapolis leads the all-time regular-season series 27–20, but San Francisco had dropped five straight meetings before December 22, 2025. The 48–27 result ended that skid emphatically and gave the 49ers their third win in the past four matchups.
| Season | Winner | Score | Key Performance |
| 2025 | 49ers | 48–27 | Purdy 5 TD, McCaffrey 117 rush yds |
| 2021 | Colts | 30–18 | Taylor 150+ rush yds |
| 2017 | Colts | 26–23 (OT) | Rivers late comeback |
| 2013 | Colts | 27–7 | Luck 3 TD passes |
Three Numbers That Decided Everything
Strip away the narrative and the 49ers vs Colts match player stats boil down to three differentials that no team survives simultaneously.
Rushing gap: 145 vs. 58 yards. San Francisco didn’t just win the run game — it owned it by 87 yards. That disparity made Purdy’s play-action lethal and rendered Taylor nearly irrelevant to the game plan.
Turnover margin: +3 for San Francisco. Dee Winters’ 74-yard pick-six in the fourth quarter converted what would have been a Colts possession into seven unanswered points. Turnovers at that stage don’t just change the scoreboard — they break momentum and sideline the opponent’s offense entirely.
Third-down efficiency: 63.6% vs. 50%. A 13-percentage-point gap on the game’s most critical down translates directly into sustained drives, clock control, and relentless pressure on an opposing offense that never gets enough rest.
Fantasy Football Implications
For managers who rostered San Francisco’s skill players, this was a windfall week. For those holding Colts options, it was largely a disappointment — with one clear exception.
| Player | Fantasy Points (Standard) | Verdict |
| Brock Purdy | 31.8 | Must-start QB1 |
| Christian McCaffrey | 23.6 | RB1 ceiling game |
| Alec Pierce | 20.6 | Best Colts option |
| George Kittle | 17.5 | Elite TE1 week |
| Jonathan Taylor | 8.2 | Bust of the week vs. SF |
Going forward, match-ups against San Francisco’s front seven should give fantasy managers pause when considering opposing running backs — regardless of reputation. The 49ers have now held four straight opponents below 75 team rushing yards.
Frequently Asked Questions
Who led all receivers in the 49ers vs Colts game?
George Kittle paced every pass-catcher on the field with seven receptions for 115 yards and a touchdown, surpassing his previous 2025 season high.
How did Jonathan Taylor perform against San Francisco’s defense?
Taylor had his least efficient game of the 2025 season — 16 carries for 46 yards at 2.9 yards per attempt, with a long of only seven yards. San Francisco’s box-stacking scheme closed every running lane the Colts tried to open.
What was Brock Purdy’s final passer rating?
Purdy posted a 138.8 passer rating on 25-of-34 passing for 295 yards and five touchdowns against one interception on a tipped ball. By several metrics, it was the best individual passing game of his career.
Did any Colts receiver score multiple touchdowns?
Yes — Alec Pierce stood out for Indianapolis, catching both Colts receiving touchdowns (a 20-yarder and a 16-yarder) while accumulating 86 yards on four receptions.
Which 49ers defender returned an interception for a touchdown?
Linebacker Dee Winters returned a Philip Rivers interception 74 yards for a score in the fourth quarter, effectively ending any realistic Colts comeback attempt.
How many total yards did San Francisco produce?
The 49ers compiled 440 total yards — 295 passing and 145 rushing — without punting a single time across their eleven possessions.
What is the all-time series record between the 49ers and Colts?
Indianapolis leads the all-time regular-season series 27–20. San Francisco now owns three of the last four meetings following this 21-point victory.
What This All Means
The 49ers vs Colts match player stats make a clear case: when every unit fires together — and they all did here — San Francisco is operating on a level few teams in the NFC can match. Purdy’s five-touchdown efficiency, McCaffrey’s dual-threat dominance, Kittle’s reliability after the catch, and a defense that manufactured turnovers when they mattered most combined for one of the season’s most complete team performances.
For Indianapolis, the numbers reveal a genuine structural fragility. A 44-year-old returning starter, a star running back who cannot thrive without consistent blocking, and a defense that surrendered nine scoring drives — that combination holds up against weaker competition but collapses when it meets an elite opponent. The Colts need to address at least one of those pillars to expect a different result in a future meeting.
Ultimately, this was Brock Purdy’s afternoon. He dismantled a reasonable NFL defense with surgical efficiency, and his supporting cast ensured no lead ever felt insecure. The scoreboard reads 48–27. In truth, it wasn’t that close.


