The final score says 30-19.
Close enough game, right?
The 49ers turned in their worst performance of the season on Sunday in Tampa Bay to post their second loss of the season.
Sure, the offense racked up yardage, but the Niners were fooled on critical plays on offense and were gashed on defense.
So while the scoreline looked close for most of the game, it never really felt close between these two teams. In a battle for NFC supremacy, Tampa Bay exerted its dominance while the Niners’ season — which looked so promising last Thursday — appears to be in total flux following the likely season-ending injury to Fred Warner and San Francisco’s floundering performance.
STUDS 

Eddy Piñeiro – K
We really wasted a lot of time with Jake Moody, huh? Piñeiro has been fantastic since arriving in Week 2.
Kendrick Bourne – WR
Five catches for 142 yards, Bourne was the team’s offensive engine on Sunday. What a sentence that is.
Mac Jones – QB
Hardly perfect — one pick was on him — but the under-siege Jones gave the Niners a chance in this game with 347 passing yards.
Jake Tonges – TE
We have to fill out this category. Tonges had 58 receiving yards.
DUDS 

Jordan Elliott – DT
He might still be in backwards motion from that opening touchdown run by the Buccaneers. Any competent center has exposed Elliott this season. I’m to the point where it’s not even worth including him on these lists anymore.
Kendrick Bourne – WR
Yes, again. You have to go for 142 yards to make up for all the airheaded stuff Bourne does. He doesn’t know the plays, he doesn’t read the defense on choice routes, and he misses blocks — he’s a liability until the ball is in his hands.
Christian McCaffrey – RB
I don’t see the burst. Do you see it? Sure, he had 111 yards from scrimmage, but the 49ers’ offensive line actually did some decent run blocking in this game, particularly early. McCaffrey went for 3.2 yards per rush.
Jauan Jennings – WR
Fighting with the head coach and offensive play caller on the sideline as the Niners try to drive down the field at the end of the first half? Read the room, dude. No, Jennings had not been targeted to that point, but it’s not as if the Niners’ offense wasn’t moving the ball. Shouldn’t that be the goal?
(Jennings followed up his tantrum with a false start on the first play of the second half and an offensive pass interference flag later on the drive.)
Austen Pleasants – OT
Didn’t take a snap outside of special teams, but he did step on Piñeiro’s foot after the kicker’s 42-yard field goal at the end of the first half. Not great!
Deommodore Lenoir – CB
He had a cool suplex of Cade Otton, but don’t let that distract you. Not only was Lenoir attacked repeatedly in coverage, but he also did not step up into the vacancy left by Warner’s injury.
He’s the supposed star of this defense now, and he has to take a more vocal role in communicating on the back end. Yet he ended up in busted coverage again and again. It wasn’t simply his mistakes that made passing so easy against the Niners on Sunday, but why is he making the same mistakes as the Niners’ rookies?
Dom Puni and Connor Colby – OG
Run over again and again on Sunday. I know both are dealing with injuries, and facing Vita Vea is downright cruel, but the 49ers are the worst in the NFL at rushing the ball, and Sunday might have been their worst run game yet.
Puni’s false start on a fourth-and-a-half-yard with 5:52 to play in the fourth quarter was a backbreaker.
Luke Farrell – TE
What is it he does here? The blocking tight end couldn’t stop a secondary player heads up off the edge, resulting in a strip fumble of Jones on the Niners’ fourth possession of the game. Luckily, he was so disengaged that he was able to pick the ball up. George Kittle can’t come back soon enough.