| 1st | 2nd | 3rd | 4th | Tot | |
| SF | 3 | 13 | 3 | 0 | 19 |
| TB | 7 | 13 | 7 | 3 | 30 |
The shorthanded San Francisco 49ers put up a fight for much of the afternoon against the Buccaneers at Raymond James Stadium in Tampa on Sunday, but mistakes and missed opportunities down the stretch led to their leaving Tampa Bay with their second loss of the season -- a loss that felt much worse than it was on the scoreboard due to yet another major injury.
The 49ers lost linebacker and team leader Fred Warner in the first half due to an ankle injury that led to him getting carted off the field and looked bad enough to believe he could be sidelined for an extended period of time. They hung with the Buccaneers for a good portion of the game after that, but the Buccaneers got enough done in the final quarter to finish the 49ers off and come away with a 30-19 win.
Quarterback Mac Jones, who lost his first game as a starter while filling in for the injured Brock Purdy, finished with 347 yards and two interceptions on 27- of-39 passing while being sacked six times. Wide receiver Kendrick Bourne caught five of Jones' passes for 142 yards.
Quarterback Baker Mayfield completed 17 of 23 passes for 256 yards with two touchdowns and zero interceptions in a winning effort for the Buccaneers.
Early turnover, Warner injury loom large in first half
Things got off to an ominous start for Jones and the 49ers. After forcing the Buccaneers to punt on their first drive, the 49ers took over at their own 16-yard line and soon after faced a 3rd-and-4 at the 22. Jones then threw a pass right into the arms of cornerback Kindle Vildor, who would have run in for a pick-six had he not stumbled to the turf after making the interception.
Kindle Vildor stumbling his way to a takeaway
SFvsTB on CBS/Paramount+https://t.co/HkKw7uXVnt pic.twitter.com/kGaf29UE0p
— NFL (@NFL) October 12, 2025
Vildor's interception set the Buccaneers up at the 12-yard line, and running back Rachaad White did the rest from there. White ran for 10 yards on first down, then put the Buccaneers up 7-0 with a two-yard touchdown.
Rachaad White with a quick 6 for the Bucs 🏴?☠?
SFvsTB on CBS/Paramount+https://t.co/HkKw7uXVnt pic.twitter.com/RtYJFDc77C
— NFL (@NFL) October 12, 2025
The interception came as a result of a miscommunication between Jones and Bourne, but Bourne made up for it in part on the next offensive play when he and Jones hooked up for a 41-yard gain to the Buccaneers' 29-yard line. The drive stalled after that following a third-down sack by defensive tackle Vita Vea, which led the 49ers to settle for a 52-yard field goal from kicker Eddy Pineiro to cut the deficit to 7-3.
Kendrick Bourne continues to make plays for the @49ers
SFvsTB on CBS/Paramount+https://t.co/HkKw7uXVnt pic.twitter.com/OUi159EoQR
— NFL (@NFL) October 12, 2025
The big story of the afternoon for the 49ers took place on the next possession when Warner fell to the turf, holding his right leg after a 10-yard run by White on the first play. Television replays showed Warner's foot getting turned violently sideways after being rolled up on by safety Ji'Ayir Brown. Warner's lower leg was placed in an air cast, then he was carted off the field and quickly ruled out of the game with what was announced as an ankle injury.
Fred Warner had to be carted off the field after appearing to suffer a right leg injury
(via @NFLonCBS) pic.twitter.com/lftZhabg9C
— 49ers on NBCS (@NBCS49ers) October 12, 2025
The 49ers went on to force a punt after a third-down sack by rookie defensive lineman Mykel Williams, then took over at their own 14-yard line. Jones completed four short passes to running back Christian McCaffrey and one to running back Brian Robinson before a third-down sack by linebacker Yaya Diaby forced the 49ers to punt back to the Buccaneers. Two off-target passes from Mayfield led to a three-and-out for the Buccaneers, after which the 49ers took over at their own 16.
The sackfest continued after the punt as Jones was taken down on the first play of the possession by cornerback Jamel Dean. But the 49ers then dug out of their hole with another big completion to Bourne, this one for 56 yards.
Kendrick was Bourne to make plays!
56-yard catch and run 😤
SFvsTB on CBS/Paramount+https://t.co/HkKw7uXVnt pic.twitter.com/uQr1eFrarz
— NFL (@NFL) October 12, 2025
The 49ers needed eight plays after Bourne's catch to get in the end zone, but they got it done on a one-yard run by McCaffrey. After a series of short gains on the ground and through the air and an offsides penalty that put them on the 1-yard line, McCaffrey plowed into the end zone on third down for the 49ers' first rushing touchdown of the season and a 10-7 lead.
Easy TD for CMC 6??
SFvsTB on CBS/Paramount+https://t.co/HkKw7uXVnt pic.twitter.com/u2vSQnK3Ox
— NFL (@NFL) October 12, 2025
The Buccaneers answered with an eight-play, 68-yard drive that ended in a nine-yard touchdown dash by running back Sean Tucker to open up a 14-10 lead. Completions of 23 yards to tight end Chad Otton and 17 yards to wide receiver Emeka Egbuka moved the Buccaneers deep into 49ers territory, then Tucker ran in on his fifth carry of the season for his first touchdown of the year.
Sean Tucker's first rushing TD of the season puts the @Buccaneers back in front 🏴?☠?
CINvsGB on CBS/Paramount+https://t.co/HkKw7uXVnt pic.twitter.com/jbBT3ZZlFD
— NFL (@NFL) October 12, 2025
A 28-yard return by Skyy Moore put the 49ers at their own 37-yard line to start the next drive, then after two runs from McCaffrey, Jones connected on a 19-yard completion to wide receiver Marquez Valdes-Scantling to the Buccaneers' 40. The 49ers only added four yards from there on a run by McCaffrey, but that was enough to set up another field goal from Pineiro, which he connected on from 54 yards to trim the lead to 14-13 with just over two minutes left in the half.
The Buccaneers needed less than two minutes to add to their lead as they moved 72 yards on five plays on the following drive to build their lead on a touchdown pass to wide receiver Kameron Johnson. An 18-yard pass to White and an 11-yard pass to Otton moved the ball to the 49ers' 34-yard line, then Mayfield found Johnson wide open near the sideline for an easy score. A two-point conversion attempt failed, leaving the score at 20-13 with 44 seconds left in the half.
Baker Mayfield to Kameron Johnson for 6!
SFvsTB on CBS/Paramount+https://t.co/HkKw7uXVnt pic.twitter.com/wekh9o5I5q
— NFL (@NFL) October 12, 2025
Fortunately for the 49ers, it turned out that 44 seconds was all they needed to add some points of their own before the teams went into the half. The 49ers began at their own 28 after the touchdown, then got things off on the wrong foot when wide receiver Demarcus Robinson dropped a pass at the 50-yard line. But Robinson corrected that mistake on the next play, hauling in another pass near midfield and advancing it to the Tampa Bay 40 for a 31-yard gain. A three-yard run from McCaffrey and a 13-yard catch from Robinson moved the ball to the 24-yard line, where Pineiro connected from 42 yards to cut the lead to 20-16.
The 49ers ended the half with a total yardage edge of 210 to 184. Jones threw for 200 yards on 13-of-19 passing with one interception, with 97 of those yards going to Bourne on two passes. Mayfield finished the half having connected on 10-of-15 passes for 133 yards and one touchdown.
Buccaneers make the plays they need to get the job done in the second half
The 49ers started the second half with possession and put together a 14-play, 65-yard drive that took over seven minutes off the clock. A series of short gains and a 19-yard completion to Bourne moved the ball deep into Buccaneers territory, but a pass interference by wide receiver Jauan Jennings on a 1st-and-10 at the 15-yard line halted momentum and pushed the 49ers back. The 49ers couldn't dig themselves out of that hole and had to settle for another field goal from Pineiro, this one from 29 yards to cut the Buccaneers' lead to 20-19.
The Buccaneers answered with a couple of doses of Mayfield magic that wound up extending their lead. The first came on a 3rd-and-14 from the Tampa Bay 41-yard line, two plays after a holding penalty put the Buccaneers in a 2nd-and-20. Mayfield broke free of a would-be sack on the play from defensive end Bryce Huff, then avoided multiple 49ers defenders before diving across the yard to gain for a first down.
BEAST MODE BAKER
SFvsTB on CBS/Paramount+https://t.co/HkKw7uXVnt pic.twitter.com/Bb1mV8ktZu
— NFL (@NFL) October 12, 2025
Two plays later, Mayfield connected from 45 yards out on a touchdown pass to rookie wide receiver Tez Johnson to give the Buccaneers a 27-19 lead. Mayfield put the ball just within the reach of Johnson, who dove for the catch, then followed what was his first NFL touchdown with a celebratory flip in the end zone.
TEZ JOHNSON TD! WHAT A CATCH AND WHAT A FLIP
SFvsTB on CBS/Paramount+https://t.co/HkKw7uXVnt pic.twitter.com/UtKZZW6YXw
— NFL (@NFL) October 12, 2025
The 49ers moved into Buccaneers territory on the next possession before a 3rd-and-11 sack by linebacker Lavonte David (which was originally ruled a fumble before being overturned) forced a punt. The Buccaneers took over at their own 14 with just over 13 minutes left in the game and quickly moved across midfield on a 36-yard completion to wide receiver Sterling Shepard. Eventually the Buccaneers moved inside the 40-yard line and were forced to settle for a 49-yard field goal attempt from Chase McLaughlin, which sailed wide right and gave the 49ers the ball at their own 39.
The next 49ers possession began the same way the last one ended -- with a sack, this one for a seven-yard loss by linebackers Haason Reddick and C.J. Brewer. Jones got 13 of those yards back on the next play with a completion to tight end Jake Tonges, but after an incomplete pass on third down, the 49ers decided to punt back to the Buccaneers with just over seven minutes left on the clock. The Buccaneers gave the 49ers a break, however, when Vea was flagged for running into the kicker, giving the 49ers a first down.
The 49ers moved inside the 30 on completions to Bourne and Tonges, then eventually faced a 4th-and-1 at the 29-yard line. But they were pushed back after a false start penalty on guard Dominick Puni, then Jones was picked off on the following play by Dean. A personal foul penalty on left tackle Trent Williams added 15 yards to the interception, giving the Buccaneers the ball at their own 35-yard line.
Jamel Dean picks it off on 4th down 🏴?☠?
SFvsTB on CBS/Paramount+https://t.co/HkKw7uXVnt pic.twitter.com/ySZhiQAmdG
— NFL (@NFL) October 12, 2025
The Buccaneers turned that possession into a field goal and a 30-19 lead, then the 49ers took over at their own 34 with 1:50 on the clock. Their final possession started in familiar fashion -- with a sack -- then after an intentional grounding penalty, the 49ers faced a 3rd-and-29 at their own 15. Completions to McCaffrey and Valdes-Scantling fell short of a first down, leading to the Buccaneers taking possession and running out the clock to finish the game.
The Buccaneers moved to 5-1 with the win and now hold a two-game edge in the NFC South. The 49ers fell to 4-2 with the loss, tying themselves with the Rams and Seahawks in the NFC West.
Game Notes
Sunday's game was the 29th all-time meeting between the 49ers and Buccaneers. The win was the first in five games for the Buccaneers, who trail the 49ers 21-8 in the series... In addition to Purdy (toe) being on the sidelines, the 49ers were without wide receiver Ricky Pearsall (knee) on Sunday... The Buccaneers lost Egbuka to a hamstring injury in the second half... Pineiro is now a perfect 15-for-15 on field goals since joining the 49ers in Week 2... The 49ers will be back in prime time next week, hosting the Atlanta Falcons on Sunday Night Football (8:20 p.m. ET/5:20 p.m. PT, NBC). The Falcons will be coming to Levi's Stadium on a short week after hosting the Buffalo Bills on Monday Night Football.
Scoring Summary
- Q1 09:58 — SF 0, TB 7
R. White 2 yd. run (C. McLaughlin kick) (2 plays, 12 yds, 0:43) - Q1 07:58 — SF 3, TB 7
E. Pineiro 52 yd. Field Goal (5 plays, 36 yds, 2:00) - Q2 10:22 — SF 10, TB 7
C. McCaffrey 1 yd. run (E. Pineiro kick) (10 plays, 84 yds, 4:44) - Q2 05:16 — SF 10, TB 14
S. Tucker 9 yd. run (C. McLaughlin kick) (8 plays, 68 yds, 5:08) - Q2 02:09 — SF 13, TB 14
E. Pineiro 54 yd. Field Goal (7 plays, 27 yds, 3:05) - Q2 00:50 — SF 13, TB 20
K. Johnson 34 yd. pass from B. Mayfield (run failed) (5 plays, 72 yds, 1:21) - Q2 00:06 — SF 16, TB 20
E. Pineiro 42 yd. Field Goal (6 plays, 47 yds, 0:42) - Q3 07:30 — SF 19, TB 20
E. Pineiro 29 yd. Field Goal (14 plays, 65 yds, 7:33) - Q3 02:49 — SF 19, TB 27
T. Johnson 45 yd. pass from B. Mayfield (C. McLaughlin kick) (8 plays, 66 yds, 4:47) - Q4 02:00 — SF 19, TB 30
C. McLaughlin 45 yd. Field Goal (8 plays, 38 yds, 3:48)
Game and Player Stats
| SF | Team Stats | TB |
| 296 | Passing Yards | 248 |
| 67 | Rushing Yards | 104 |
| 363 | Total Yards | 352 |
| 8.9 | Avg Yards per Pass | 11.13 |
| 3.05 | Avg Yards per Run | 4 |
| 0 | Fumbles Lost | 0 |
| 2 | Int Thrown | 0 |
| 6 | Sacks Allowed | 1 |
| 00:32:35 | Time of Pos | 00:27:25 |
| 9 | Penalties | 5 |
| 49ers Player Stats | ||||
| Passing | Cmp/Att | Yds | TDs | INTs |
| Mac Jones | 27/39 | 347 | 0 | 2 |
| Rushing | Att | Yds | Avg | TDs |
| Christian McCaffrey | 17 | 54 | 3.2 | 1 |
| Mac Jones | 5 | 13 | 2.6 | 0 |
| Receiving | Rec | Tgt | Yds | TDs |
| Kendrick Bourne | 5 | 9 | 142 | 0 |
| Jake Tonges | 6 | 7 | 58 | 0 |
| Christian McCaffrey | 7 | 8 | 57 | 0 |
| Demarcus Robinson | 2 | 3 | 44 | 0 |
| Marquez Valdes-Scantling | 2 | 3 | 22 | 0 |
| Kyle Juszczyk | 1 | 1 | 9 | 0 |
| Brian Robinson | 3 | 3 | 8 | 0 |
| Jauan Jennings | 1 | 3 | 7 | 0 |
| Fumbles | Fum | Lost | ||
| Mac Jones | 1 | 0 | 0 | 0 |
| Kicking | FG | Att | Lg | XP |
| Eddy Pineiro | 4 | 4 | 54 | 1 |
| Punting | No | Avg | I20 | Lg |
| Thomas Morstead | 2 | 41.5 | 1 | 48 |
| Punt Returns | Att | Avg | TDs | Lg |
| Skyy Moore | 2 | 12.5 | 0 | 13 |
| Defense | T-A | Sck | INTs | FF |
| Upton Stout | 5-2 | 0 | 0 | 0 |
| Dee Winters | 4-1 | 0 | 0 | 0 |
| Marques Sigle | 4-0 | 0 | 0 | 0 |
| Jordan Elliott | 3-1 | 0 | 0 | 0 |
| Ji'Ayir Brown | 3-1 | 0 | 0 | 0 |
| Renardo Green | 3-1 | 0 | 0 | 0 |
| Mykel Williams | 3-1 | 1 | 0 | 0 |
| Deommodore Lenoir | 2-1 | 0 | 0 | 0 |
| Malik Mustapha | 2-1 | 0 | 0 | 0 |
| CJ West | 2-1 | 0 | 0 | 0 |
| Luke Gifford | 2-0 | 0 | 0 | 0 |
| Tatum Bethune | 10-5 | 0 | 0 | 0 |
| Fred Warner | 1-1 | 0 | 0 | 0 |
| Alfred Collins | 1-1 | 0 | 0 | 0 |
| Bryce Huff | 1-0 | 0 | 0 | 0 |
| Buccaneers Player Stats | ||||
| Passing | Cmp/Att | Yds | TDs | INTs |
| Baker Mayfield | 17/23 | 256 | 2 | 0 |
| Rushing | Att | Yds | Avg | TDs |
| Rachaad White | 17 | 65 | 3.8 | 1 |
| Sean Tucker | 6 | 25 | 4.2 | 1 |
| Baker Mayfield | 3 | 14 | 4.7 | 0 |
| Receiving | Rec | Tgt | Yds | TDs |
| Kameron Johnson | 4 | 4 | 64 | 1 |
| Sterling Shepard | 2 | 3 | 51 | 0 |
| Cade Otton | 5 | 6 | 51 | 0 |
| Tez Johnson | 1 | 3 | 45 | 1 |
| Emeka Egbuka | 2 | 4 | 24 | 0 |
| Rachaad White | 3 | 3 | 21 | 0 |
| Fumbles | Fum | Lost | ||
| Baker Mayfield | 1 | 0 | 0 | 0 |
| Kicking | FG | Att | Lg | XP |
| Chase McLaughlin | 1 | 2 | 45 | 3 |
| Punting | No | Avg | I20 | Lg |
| Riley Dixon | 3 | 47 | 3 | 60 |
| Punt Returns | Att | Avg | TDs | Lg |
| Kameron Johnson | 1 | 6 | 0 | 6 |
| Defense | T-A | Sck | INTs | FF |
| Antoine Jr. Winfield | 9-4 | 0 | 0 | 0 |
| Jacob Parrish | 7-2 | 0 | 0 | 0 |
| SirVocea Dennis | 7-1 | 0 | 0 | 0 |
| Lavonte David | 6-2 | 1 | 0 | 0 |
| Tykee Smith | 6-1 | 0 | 0 | 0 |
| Anthony Nelson | 4-3 | 0 | 0 | 0 |
| Vita Vea | 4-3 | 0.5 | 0 | 0 |
| Jamel Dean | 4-1 | 1 | 1 | 1 |
| Kindle Vildor | 3-1 | 0 | 1 | 0 |
| Haason Reddick | 3-1 | 0.5 | 0 | 0 |
| Yaya Diaby | 3-0 | 2 | 0 | 0 |
| C.J. Brewer | 2-2 | 0.5 | 0 | 0 |
| Logan Hall | 2-1 | 0 | 0 | 0 |
| Chris Braswell | 2-1 | 0 | 0 | 0 |
| Deion Jones | 1-1 | 0 | 0 | 0 |
| Elijah Simmons | 1-1 | 0 | 0 | 0 |
| Elijah Roberts | 1-1 | 0.5 | 0 | 0 |
| Greg Gaines | 1-0 | 0 | 0 | 0 |