TAMPA, Fla. -- With quarterback Jimmy Garoppolo easing his way back into his first regular-season game since his ACL injury last September, the San Francisco 49ers turned to their defense to deliver a season-opening 31-17 victory over the Tampa Bay Buccaneers on Sunday. It's the first time since Kyle Shanahan took over as head coach in 2017 that the 49ers have a winning record.
A secondary that was much maligned a season ago, setting league records for fewest interceptions (two) and total takeaways (seven), came through with two interception returns for touchdowns and three picks overall.
The Niners limited Tampa to 295 total yards in addition to their four takeaways and held the Bucs' offense to just 10 points. There's a lot of football left to play this season, but against a talented Bruce Arians-led offense, having the defense carry the way in the opener should bode well as the offense takes some time to come together.
QB breakdown: Garoppolo was up and down but managed the game. He finished 18-of-27 for 166 yards with a touchdown and an interception that was returned for a touchdown. His passer rating was 80.2.
Garoppolo didn't seem hesitant to run or antsy in the pocket, although he didn't push the ball down the field much either. Garoppolo's touchdown pass to receiver Richie James Jr. traveled 26 yards in the air, according to ESPN Stats & Information. His first 14 completions of the game traveled a total of 16 yards in the air.
It was wise of Shanahan not to put too much on Garoppolo's shoulders in the opener, a decision that looked even better given the performance of the defense.
Pivotal play: With 2:01 left, the Bucs had a chance to go on a game-winning touchdown drive. But Niners end Dee Ford pressured Winston, who forced a throw to the left. The ball sailed directly into the hands of Witherspoon, who grabbed it and raced 25 yards for a touchdown to put the game away.
It was the moment that made a close game not so close and, just as important, should be a huge confidence boost to Witherspoon, who was up and down in 2018 but played well on Sunday.
Troubling trend: Penalties were abundant on both sides as the teams combined for 19 flags. The Niners have to wonder how the final score would have looked were it not for the awful timing of some of their infractions.
The Niners had three touchdowns called back by penalties, two that would have gone to tight end George Kittle (one an offensive pass interference on fullback Kyle Juszczyk and one for illegal formation on tackle Mike McGlinchey). Another penalty negated a score by running back Raheem Mostert (a holding call on receiver Richie James Jr.). For a team that struggled to finish drives with touchdowns last season -- the Niners finished last in the league in red zone efficiency -- those types of miscues can't happen if they want to take a step forward.