TAMPA, Fla. (AP) — The San Francisco 49ers had three touchdowns negated by penalties, turned the ball over twice and didn't a get particularly sharp performance from Jimmy Garoppolo.
That just made beating the Tampa Bay Buccaneers 31-17 on a hot, humid Sunday in Florida that much sweeter.
"It's fun to win when you can be hard on the guys the next day because there's a lot of stuff on that tape that could have cost us that game in all three phases," coach Kyle Shanahan said.
"I was disappointed with that and still to be able to pull out a win says a lot about the guys we've got in there. They kept grinding, and when you do that usually good things happen."
Richard Sherman and Ahkello Witherspoon returned two of a retooled defense's three interceptions of Jameis Winston for touchdowns and Robbie Gould kicked three field goals for the 49ers, who forced four turnovers overall and also deflected an early punt to set up the offense's first scoring drive.
"I'm just happy for our defense, I'm happy for our team. We played sloppy, but it's the first game," Sherman said. "We've got to knock out some of the wrinkles. We've got to find a way to play a more mistake-free football game, myself included. I had a couple penalties that I shouldn't have had. I've got to put myself in better position. It was a decent game for us, but we've got to get better."
Garoppolo threw for 166 yards and one touchdown in his first game in nearly a year.
"The whole offense was shaky. I think he made a couple good throws but Jimmy, everyone else including myself needs to be a lot more consistent," Shanahan said.
"There's some things out there that we missed. Fortunately our defense got us turnovers. It's hard to win when you have two turnovers on offense, but when you get four on the other side, especially when they score on two of them, that makes it a little easier to overcome some sloppy play that we had."
Winston threw for 194 yards to become Tampa Bay's career passing leader, including a 10-yard scoring pass to Chris Godwin that trimmed a double-digit deficit to 20-14 late in the third quarter. Ultimately, though, the Bucs could not overcome the fifth-year quarterback's mistakes and dropped their debut under coach Bruce Arians, who was lured out of retirement after Tampa Bay finished 5-11 last season and missed the playoffs for the 11th straight year.
"We talked all week about winning the turnover battle, and when it's four to two, it's always going to be tough," Arians said. "But there were some really bright spots and areas that we can build off of and also learn why we're losing instead of winning. That one is pretty easy."
Garoppolo, who missed most of last season with a knee injury, completed 18 of 27 passes with one interception. His 39-yard pass to Richie James Jr. put the 49ers ahead for good early in the second half.
Despite moving past Vinny Testaverde to become Tampa Bay's career passing leader, Winston has yet to lead the team to the playoffs or prove he's the club's long-term answer at quarterback.
Arians has also worked with Ben Roethlisberger, Peyton Manning, Andrew Luck and Carson Palmer as a long-time coach and offensive coordinator, and the Bucs are counting on him to help the No. 1 overall pick from the 2015 draft realize his potential.
This is also a season when the 49ers are counting on Garoppolo to make major strides, too. The 49ers gave the sixth-year pro a $137.5 million, five-year contract after Garoppolo won his first five starts for San Francisco in 2017. He didn't look nearly as good early last season, when he completed less than 60 percent of his passes before suffering a knee injury that sidelined him the final 13 games.
"I think there were some ups and downs, but it's always fun to start the season 1-0," Garoppolo said. "It feels good to just be back. It's been a while since I've been out here with the guys for a full game. It was fun out there today."
Neither quarterback distinguished himself during a sloppy first half that saw the teams combine for four turnovers and have five touchdowns — three by San Francisco, two by Tampa Bay — nullified because of penalties in a 7-6 game.
The Bucs' Vernon Hargreaves returned an interception 15 yards for the only TD that counted before halftime. Sherman countered for the 49ers, sprinting 31 yards up the sideline with his first interception in eight games to give San Francisco a 20-7 lead a little over three minutes into the third quarter. Witherspoon put the game out of reach with his 25-yard TD return in the closing minutes.
49ers: FS Jimmie Ward (hand) was inactive, replaced in the lineup by Tarvarius Moore. ... RB Tevin Coleman left with an ankle injury and did not return. .... CB K'Waun Williams (dehydration) left in the third quarter.
Buccaneers: DL Rakeem Nunez-Roches left in the second quarter with a hand injury.
San Francisco LB Kwon Alexander was penalized 15 yards and ejected for lowering his head to initiate contact on a hit on Winston late in the first quarter. Winston scrambled for a 5-yard gain and was hit by his former teammate as the quarterback began to slide at the 49ers 45. Alexander was playing his first game since signing with San Francisco as a free agent. He played the first four years of his career with the Bucs.
Fans arriving early to Raymond James Stadium were entertained by country music star Tim McGraw. The concert in 90-degree heat began more than two hours before kickoff. McGraw also performed an encore at halftime.
49ers: at Cincinnati next Sunday. The franchises met twice in Super Bowls in the 1980s, the Niners winning both.
Buccaneers: road opener at Carolina on short rest on Thursday night.