| 1st | 2nd | 3rd | 4th | Tot | |
| CHI | 14 | 7 | 7 | 10 | 38 |
| SF | 14 | 14 | 7 | 7 | 42 |
It's become obvious that in order for this San Francisco 49ers team to advance deep into the postseason, they'll likely need to rely on their high-powered offense to carry the load while their injury-depleted defense makes just enough plays to win games. The 49ers completed the first half of that equation emphatically on Sunday night, while also getting a passing grade on the second part -- but just barely.
In an instant classic shootout between two 11-4 teams with aspirations toward the NFC's number one overall playoff seed, the 49ers outlasted the Bears 42-38 when they stopped what would have been a game-winning drive at the 2-yard line with four seconds to play. The teams combined for over 900 yards of offense (496 for the 49ers, 440 for the Bears), but it came down to two yards in the end, which the 49ers were able to take by forcing an incompletion in the end zone as time expired.
Quarterbacks Brock Purdy and Caleb Williams put on a show, as Purdy completed 24-of-33 passes for three touchdowns and one interception along with two rushing touchdowns, while Williams finished with 330 yards and two touchdowns on 25-of-42 passing.
Action-packed first half ends in a 49ers lead
The game started off on an awful note for the 49ers, who found themselves down a touchdown 15 seconds into the game. After starting their opening possession with the ball at their own 24-yard line, the 49ers gave up a pick six on the first play of the game when a Purdy pass intended for wide receiver Jauan Jennings was tipped by cornerback Jaylon Johnson into the hands of linebacker T.J. Edwards. Edwards returned the ball 34 yards to the end zone, giving the Bears a 7-0 lead. Making matters worse, the 49ers also lost left tackle Trent Williams for the remainder of the game due to a hamstring injury on the play.
BEARS PICK-6 ON THE FIRST PLAY.
CHIvsSF on NBC
— NFL (@NFL) December 29, 2025
Stream on @NFLPlus + Peacock pic.twitter.com/wbOu4NFC8m
The offense rebounded on the next drive for the 49ers, turning in a nine-play, 65-yard touchdown drive to tie the game at 7. An 18-yard completion to tight end Jake Tonges on the third play of the drive gave the 49ers a first down on a 3rd-and-7 and moved the ball across midfield, then later in the drive, a 25-yard completion to wide receiver Demarcus Robinson put the ball at the 1-yard line. Purdy found Tonges wide open in the end zone on the next play, putting the game's second touchdown on the board less than five minutes into the game.
Purdy responds with a TD to Tonges!
CHIvsSF on NBC
— NFL (@NFL) December 29, 2025
Stream on @NFLPlus + Peacock pic.twitter.com/4K3uGEy7b6
Three punts followed Tonges' touchdown, then the 49ers began their next scoring drive at their own 34-yard line with 6:13 left in the first quarter. The 49ers made quick work of the Bears' defense on that drive, starting with a 41-yard run by Christian McCaffrey on the first play of the possession. Running back Brian Robinson followed with a 15-yard run, then Purdy did the rest with a 10-yard trot to put the 49ers up 14-7 on the drive's third play.
Purdy scrambles for the TD!
CHIvsSF on NBC
— NFL (@NFL) December 29, 2025
Stream on @NFLPlus + Peacock pic.twitter.com/UbNgBH0G8L
The Bears tied the score in a hurry on the next drive, which saw them move 77 yards on five plays. Two completions for 19 yards, an eight-yard run and a 15-yard penalty for an illegal block on linebacker Tatum Bethune put the ball at the 49ers' 35-yard line, then Williams threw deep into the end zone to wide receiver Luther Burden, who hauled in the touchdown with just under three minutes left in the first quarter.
CALEB TO LUTHER BURDEN III.
CHIvsSF on NBC
— NFL (@NFL) December 29, 2025
Stream on @NFLPlus + Peacock pic.twitter.com/6u5uwTe724
The fireworks continued on the next possession, which turned into a nine-play, 75-yard touchdown drive for the 49ers. A 30-yard completion to wide receiver Ricky Pearsall on the second play of the drive moved the ball across midfield, then runs from Purdy and McCaffrey moved the ball inside the Bears' 35. A 13-yard catch by Pearsall and a 16-yard run by McCaffrey put the 49ers in a 1st-and-Goal at the 5, then McCaffrey finished the job on the next play with a 5-yard touchdown run to give the 49ers a 21-14 early second quarter lead.
CMC touchdown and the @49ers retake the lead.
CHIvsSF on NBC
— NFL (@NFL) December 29, 2025
Stream on @NFLPlus + Peacock pic.twitter.com/poUbFDFIlp
That lead lasted all of one minute and 24 seconds, as the Bears tied it up quickly yet again with a three-play, 65-yard drive. After an 18-yard run and an 11-yard catch by running back Kyle Monangai started the drive, Williams fired a 36-yard touchdown pass to tight end Colston Loveland, who tied the game at 21 with his fifth touchdown of the season.
Caleb fires a 36-yard TD to Colston Loveland on the free play!
CHIvsSF on NBC
— NFL (@NFL) December 29, 2025
Stream on @NFLPlus + Peacock pic.twitter.com/kCSOT97O0I
The 49ers put together their fourth scoring drive of the first half on the next possession, one that came with a couple of near-stops from the Bears. The 49ers converted a 4th-and-3 play halfway through the drive with a 14-yard completion to Pearsall, then the drive almost came to an end again when Purdy was picked off in the end zone by safety C.J. Gardner-Johnson. But Gardner-Johnson was flagged for illegal use of hands on the play, and the 49ers capitalized with Purdy's second touchdown run of the game. The drive took much longer than previous possessions as it took nearly nine minutes off the clock while spanning 15 plays for 72 yards.
Purdy's second rushing TD of the half!
CHIvsSF on NBC
— NFL (@NFL) December 29, 2025
Stream on @NFLPlus + Peacock pic.twitter.com/2mquifVQ5L
The half came to a fairly uneventful end from there, as the Bears punted back to the 49ers with just over a minute remaining, while the 49ers ran out of clock after a 41-yard drive that began at their own 9-yard line. The 49ers held an advantage of 330-to-154 in total yardage at the half along with a heavy edge in first downs (22-8). McCaffrey finished the half with 141 total yards (121 rushing, 20 receiving), while Purdy completed 14-of-20 passes for 164 yards. Williams finished with 108 yards on 6-of-12 passing.
The shootout leads to a thrilling conclusion
The Bears' offense opened the half in strong fashion with a 10-play, 65-yard drive that evened the game with a touchdown run by running back DeAndre Swift. The 49ers had a chance to get off the field on a 3rd-and-14 earlier in the drive but gave up a 19-yard completion to wide receiver Jahdae Walker, which was followed up with a 24-yard reception by Burden that put the ball at the 3-yard line. Swift then ran in from two yards out on third down to tie the game at 28.
D'Andre Swift makes it a 28-28 game!
CHIvsSF on NBC
— NFL (@NFL) December 29, 2025
Stream on @NFLPlus + Peacock pic.twitter.com/5m00RlS9P4
The 49ers answered with an efficient drive of their own that ended with one of the highlight plays of the year for Brock Purdy. The 49ers took over at their own 35 and moved to Bears' 6-yard line in seven plays, which included a 25-yard completion to wide receiver Kendrick Bourne to start the drive. On a 1st-and-Goal play from the 6, Purdy rolled left, made a backstep to escape two Bears defensive linemen, then tossed a touchdown pass to fullback Kyle Juszczyk to give the 49ers a 35-28 lead.
BROCK IS DANCING.
CHIvsSF on NBC
— NFL (@NFL) December 29, 2025
Stream on @NFLPlus + Peacock pic.twitter.com/X1C386zlTv
The Bears fought right back with a 10-play, 80-yard drive that ended in the second straight touchdown run for Swift. Key plays in the drive included a 27-yard completion to Burden to give the Bears a first down on a 3rd-and-8 and a nine-yard completion to Loveland to convert on a 4th-and-5 from the 31-yard line. On the play following the pass to Loveland, Swift burst through the 49ers defense on the first play of the fourth quarter and scored from 22 yards out to tie the game at 35.
D'Andre Swift ties it up again!
CHIvsSF on NBC
— NFL (@NFL) December 29, 2025
Stream on @NFLPlus + Peacock pic.twitter.com/ktNXWAGdn7
The Bears came up with a major defensive stop on the next drive, forcing a punt after a 20-yard completion to Pearsall on a 3rd-and-7 play moved the ball across midfield. They drove 78 yards in 11 plays, taking six minutes off the clock before the 49ers came up with somewhat of a stop of their own. The 49ers didn't keep the Bears off the scoreboard, but they were able to hold them to a 29-yard field goal from kicker Cairo Santos after the Bears moved inside the 10-yard line. The field goal put the Bears up 38-35 while leaving the 49ers with five minutes and 22 seconds to come up with a counter.
They were able to do exactly that with a seven-play, 75-yard drive that ended in a touchdown pass to Jauan Jennings to give the 49ers a four-point lead. The 49ers got a conversion on a 3rd-and-6 early in the drive with a seven-yard completion to Tonges, then moved across midfield on an 18-yard completion to McCaffrey that put them at the Bears' 38-yard line. Two plays later, Purdy connected with Jennings at the 18-yard line, then Jennings ran in from there for a 38-yard touchdown and a 42-38 lead.
JAUAN JENNINGS 38-YARD TD FOR THE LEAD.
CHIvsSF on NBC
— NFL (@NFL) December 29, 2025
Stream on @NFLPlus + Peacock pic.twitter.com/CaLRiHAFQT
Two minutes and 15 seconds remained in the game for the Bears, who started at their own 35-yard line after a touchback. The Bears moved to the 45-yard line after a five-yard run by Swift and a holding penalty on defensive back Chase Lucas, then crossed midfield and moved to the 49ers' 45-yard line after Williams ran for a first down on a 3rd-and-4. A dropped pass by Loveland followed by an incomplete pass on second down set up a 3rd-and-10, then Williams and Burden came up in the clutch with a 14-yard completion that moved the ball to the 31-yard line. The Bears called a timeout with 40 seconds left after a 5-yard completion to Burden to the 26, then after an incompletion on second down, Burden dropped a pass on third down to set up a 4th-and-5 with 33 seconds. But Williams delivered again, finding Loveland open for a 13-yard gain to the 13.
The Bears took their final timeout with 26 seconds remaining, then the 49ers forced a throwaway with their pass rush on the ensuing play. With 21 seconds left on the clock, the Bears ran a hook-and-ladder play where Loveland lateralled the ball to Swift, who moved down to the 2. But that play took 17 seconds off the clock, giving the Bears one final play with four seconds. That wasn't enough, as the 49ers pressured Williams into one more incompletion in the end zone to squeeze out a victory.
THE NINERS WIN. WHAT A GAME. pic.twitter.com/3ndM5VUnSq
— NFL (@NFL) December 29, 2025
The 49ers moved to 12-4 with the win, keeping apace with the Seattle Seahawks (13-3) in the NFC West. The Bears fell to 11-5.
Game Notes
Sunday's game was the 71st meeting between the 49ers and Bears, with the 49ers now holding a 37-33-1 edge. The teams split the last eight games in the series before Sunday night... The 49ers were three-point favorites coming into the game... McCaffrey's 41-yard run in the first quarter was his longest of the season... The first quarter punt by Thomas Morstead was the first from the 49ers in the month of December. His first punt in the fourth quarter was the 1,000th of his career... Tight end George Kittle (ankle injury) was among the inactives for the game, opening the door for Tonges to get more looks at tight end... The 49ers' 330 first-half yards were the most since they put up 394 against the Falcons in 1998... Per the AP, McCaffrey became the eighth player in history to have three seasons with 2,000 or more scrimmage yards, joining Walter Payton, Marshall Faulk, Eric Dickerson (four each), Tiki Barber, LaDainian Tomlinson, Priest Holmes, and Edgerrin James (three each)... Sunday's game was the first regular season game in NFL history where the score was tied at 7, 14, 21, 28, and 35... The 49ers will close their season at home this Saturday against the Seattle Seahawks in a battle for the number one overall seed. The game will air at 8 p.m. on ESPN.
Scoring Summary
- Q1 14:54 — CHI 7, SF 0
T. Edwards 34 yd. interception return (C. Santos kick) - Q1 11:02 — CHI 7, SF 7
J. Tonges 1 yd. pass from B. Purdy (E. Pineiro kick) (9 plays, 65 yds, 3:48) - Q1 04:59 — CHI 7, SF 14
B. Purdy 10 yd. run (E. Pineiro kick) (3 plays, 66 yds, 1:21) - Q1 03:05 — CHI 14, SF 14
L. Burden 35 yd. pass from C. Williams (C. Santos kick) (5 plays, 77 yds, 1:54) - Q2 13:49 — CHI 14, SF 21
C. McCaffrey 5 yd. run (E. Pineiro kick) (9 plays, 75 yds, 4:14) - Q2 12:28 — CHI 21, SF 21
C. Loveland 36 yd. pass from C. Williams (C. Santos kick) (3 plays, 65 yds, 1:24) - Q2 03:27 — CHI 21, SF 28
B. Purdy 3 yd. run (E. Pineiro kick) (15 plays, 72 yds, 8:57) - Q3 09:55 — CHI 28, SF 28
D. Swift 2 yd. run (C. Santos kick) (10 plays, 65 yds, 5:09) - Q3 05:01 — CHI 28, SF 35
K. Juszczyk 6 yd. pass from B. Purdy (E. Pineiro kick) (8 plays, 65 yds, 4:59) - Q4 15:00 — CHI 35, SF 35
D. Swift 22 yd. run (C. Santos kick) (10 plays, 80 yds, 4:58) - Q4 05:26 — CHI 38, SF 35
C. Santos 29 yd. Field Goal (11 plays, 78 yds, 6:01) - Q4 02:23 — CHI 38, SF 42
J. Jennings 38 yd. pass from B. Purdy (E. Pineiro kick) (7 plays, 75 yds, 3:07)
Game and Player Stats
| CHI | Team Stats | SF |
| 330 | Passing Yards | 296 |
| 110 | Rushing Yards | 200 |
| 440 | Total Yards | 496 |
| 7.86 | Avg Yards per Pass | 9.18 |
| 5 | Avg Yards per Run | 5.88 |
| 0 | Fumbles Lost | 0 |
| 0 | Int Thrown | 1 |
| 0 | Sacks Allowed | 1 |
| 00:26:27 | Time of Pos | 00:33:33 |
| 7 | Penalties | 5 |
| Bears Player Stats | ||||
| Passing | Cmp/Att | Yds | TDs | INTs |
| Caleb Williams | 25/42 | 330 | 2 | 0 |
| Rushing | Att | Yds | Avg | TDs |
| D'Andre Swift | 9 | 54 | 6 | 2 |
| Kyle Monangai | 8 | 38 | 4.8 | 0 |
| Caleb Williams | 5 | 18 | 3.6 | 0 |
| Receiving | Rec | Tgt | Yds | TDs |
| Luther Burden | 8 | 9 | 138 | 1 |
| Colston Loveland | 6 | 10 | 94 | 1 |
| Jahdae Walker | 2 | 4 | 30 | 0 |
| D'Andre Swift | 2 | 3 | 25 | 0 |
| Cole Kmet | 2 | 3 | 16 | 0 |
| Durham Smythe | 1 | 1 | 11 | 0 |
| Kyle Monangai | 3 | 4 | 9 | 0 |
| DJ Moore | 1 | 4 | 7 | 0 |
| Devin Duvernay | 0 | 1 | 0 | 0 |
| Kicking | FG | Att | Lg | XP |
| Cairo Santos | 1 | 1 | 29 | 5 |
| Punting | No | Avg | I20 | Lg |
| Tory Taylor | 3 | 48.3 | 1 | 64 |
| Defense | T-A | Sck | INTs | FF |
| T.J. Edwards | 9-3 | 0 | 1 | 0 |
| Tremaine Edmunds | 9-2 | 0 | 0 | 0 |
| Jaquan Brisker | 8-5 | 0 | 0 | 0 |
| Gervon Dexter | 7-4 | 0 | 0 | 0 |
| Nahshon Wright | 7-1 | 0 | 0 | 0 |
| C.J. Gardner-Johnson | 5-3 | 0 | 0 | 0 |
| Montez Sweat | 5-1 | 0 | 0 | 0 |
| Joe Tryon-Shoyinka | 4-1 | 0 | 0 | 0 |
| Grady Jarrett | 3-3 | 0 | 0 | 0 |
| Andrew Billings | 3-2 | 0 | 0 | 0 |
| Austin Booker | 3-2 | 1 | 0 | 0 |
| Kevin Byard | 2-2 | 0 | 0 | 0 |
| Jaylon Johnson | 2-1 | 0 | 0 | 0 |
| Dominique Robinson | 1-1 | 0 | 0 | 0 |
| Elijah Hicks | 1-1 | 0 | 0 | 0 |
| Noah Sewell | 1-1 | 0 | 0 | 0 |
| 49ers Player Stats | ||||
| Passing | Cmp/Att | Yds | TDs | INTs |
| Brock Purdy | 24/33 | 303 | 3 | 1 |
| Rushing | Att | Yds | Avg | TDs |
| Christian McCaffrey | 23 | 140 | 6.1 | 1 |
| Brock Purdy | 6 | 28 | 4.7 | 2 |
| Brian Robinson | 4 | 22 | 5.5 | 0 |
| Skyy Moore | 1 | 10 | 10 | 0 |
| Receiving | Rec | Tgt | Yds | TDs |
| Ricky Pearsall | 5 | 8 | 85 | 0 |
| Jake Tonges | 7 | 9 | 60 | 1 |
| Jauan Jennings | 2 | 4 | 42 | 1 |
| Christian McCaffrey | 4 | 6 | 41 | 0 |
| Demarcus Robinson | 2 | 2 | 30 | 0 |
| Kendrick Bourne | 1 | 1 | 25 | 0 |
| Kyle Juszczyk | 2 | 2 | 14 | 1 |
| Brian Robinson | 1 | 1 | 6 | 0 |
| Punting | No | Avg | I20 | Lg |
| Thomas Morstead | 2 | 40.5 | 2 | 49 |
| Punt Returns | Att | Avg | TDs | Lg |
| Skyy Moore | 2 | 5.5 | 0 | 11 |
| Defense | T-A | Sck | INTs | FF |
| Dee Winters | 7-0 | 0 | 0 | 0 |
| Ji'Ayir Brown | 4-3 | 0 | 0 | 0 |
| Deommodore Lenoir | 4-2 | 0 | 0 | 0 |
| Upton Stout | 4-1 | 0 | 0 | 0 |
| Bryce Huff | 3-3 | 0 | 0 | 0 |
| Kalia Davis | 3-1 | 0 | 0 | 0 |
| Darrell Luter | 3-1 | 0 | 0 | 0 |
| Malik Mustapha | 3-1 | 0 | 0 | 0 |
| Alfred Collins | 2-2 | 0 | 0 | 0 |
| Jason Pinnock | 2-1 | 0 | 0 | 0 |
| Luke Gifford | 2-0 | 0 | 0 | 0 |
| Tatum Bethune | 11-4 | 0 | 0 | 0 |
| Yetur Gross-Matos | 1-1 | 0 | 0 | 0 |
| Keion White | 1-1 | 0 | 0 | 0 |
| Chase Lucas | 1-0 | 0 | 0 | 0 |
| Sam Okuayinonu | 1-0 | 0 | 0 | 0 |
| CJ West | 1-0 | 0 | 0 | 0 |