Dec. 22, 2025, 10:15 p.m. PT

The San Francisco 49ers took care of business Monday night with a 48-27 win over the Indianapolis Colts.

It wasn’t a perfect victory, but it was a mostly dominant performance from San Francisco where they asserted themselves and pulled away in the second half after struggling to get stops in the first half. The 49ers moved to 11-4 and kept pace in the hunt for the No. 1 seed in the NFC.

Here’s what we took away from San Francisco’s victory:

49ers winning formula

San Francisco might be finding its path to victories. Their defense isn’t going to be a top-10 unit given their major injuries to Nick Bosa and Fred Warner. However, they have been able to get some key stops during the team’s five-game win streak. They bent plenty against the Colts, but they never broke in a place that could’ve swung the game. In fact, after a Brock Purdy turnover in the fourth quarter, the 49ers defense swung the game back the other way with a pick-six by Dee Winters. If they can get offensive performances as efficient as the one they got Monday (6.7 yards per play and no punts), and get a couple of key stops on defense, they’ll be in a good spot to win shootouts.

Need a news break? Check out the all new PLAY hub with puzzles, games and more!Special teams swings another one

The 49ers defense got mowed over on its first drive, but their offense answered with a game-tying score. On the ensuing kickoff, Ji’Ayir Brown forced a fumble that Jake Tonges recovered at the Colts 26 which put San Francisco’s offense in prime position to score again. They took a 14-7 lead and got the game script in their favor early.

Brock Purdy is dialed

Purdy has been very good since his nightmare first half against the Carolina Panthers in Week 12. He was at his best Monday night, though. Purdy completed 25-of-34 throws for 295 yards, five touchdowns and one interception. More than the stats, Purdy looked in total control for the third consecutive game. His interception was a throw late in the game that just sailed on him a little bit and bounced off Kendrick Bourne’s hands. It wasn’t a poor read or bad decision, which Purdy has been good about avoiding over the last three games. If he’s locked in like this, the 49ers have a chance.

Christian McCaffrey, 49ers run game finds room

In a shocking twist, the 49ers run game had a ton of success against a stout Colts run defense. McCaffrey had his best rushing game of the season with 117 yards on 21 carries, but he looked more explosive than he has all season and turned in a couple of impressive runs where he created a bunch of his own yards. When he gets rolling on the ground the 49ers offense is extremely difficult to slow down.

George Kittle’s big night

Kittle exited the game with an ankle injury, but not before hauling in seven-of-eight targets for 115 yards and a touchdown. He was open all night, made a couple of tough contested catches, and continues to look good moving after the catch. His ankle injury is definitely a concern on a short week with the 49ers hosting the Chicago Bears on Sunday night.

Eddy Pineiro finally misses

Technically Pineiro missed a field goal. However, the miss was a forgivable one. At the end of the first half the 49ers trotted out Pineiro for a 64-yard field goal try. His career long is 59 yards, so the 64-yard try was a huge longshot. Pineiro drilled the kick and it was right down the middle, but it careened off the crossbar and out for a close miss. Pineiro hit both of his other field goal tries, however, and connected on all six extra points. He continues to be a tremendous find for the 49ers.

Eric Kendricks debuts

The 49ers elevated Kendricks from the practice squad and made Curtis Robinson a healthy scratch with Tatum Bethune back in the middle of the defense at Mike linebacker. Bethune exited the game with an injury late and Kendricks took over at the Mike. He played well enough in his first few snaps in a defense he’s only practiced with for three weeks. He also contributed on special teams. It wouldn’t be a surprise if he’s eventually promoted to the active roster.

Thomas Morstead’s time theft

Morstead didn’t punt for the second week in a row. The 49ers either scored, missed a field goal or turned it over on all of their possessions Monday night. That’s after scoring on all of their possessions save for a turnover in Week 15 against the Tennessee Titans. The last time San Francisco punted was Week 13 in Cleveland. He hasn’t punted yet in the month of December.

More 49ers: 49ers vs. Colts highlights: SF extends win streak to 5 games