SANTA CLARA – The 49ers entered Sunday's game trying to approximate what it might be like to play a meaningful mid-December game.
The Tennessee Titans did not have to pretend. They came to the Bay Area as the No. 5 seed in the AFC playoffs and battling to earn the right to play football in January.
Titans kicker Ryan Succop made a 50-yard field goal with 1:07 remaining to give Tennessee's 23-22 lead.
Robbie Gould made all six field-goal attempts, including a 48-yarder with 3:08 remaining to give the 49ers a 22-20 lead. Gould has made 19 consecutive field goals.
Garoppolo made his first home start since taking over from C.J. Beathard as the 49ers' starting quarterback, which provided a little more energy for the home crowd than what would typically be expected for a three-win team.
Garoppolo completed 31 of 43 pass attempts for a career-best 381 yards with one touchdown and no interceptions. His passer rating was 106.8.
The 49ers pulled to within 20-19 on Gould's 50-yard field goal in the middle of the fourth quarter. On the 49ers' next possession, Garoppolo hit Kendrick Bourne for 54 yards and Kittle for 19 yards to get into field-goal range for Gould's go-ahead kick.
The 49ers would have had a first-and-goal at the 1-yard line, but Taylor's 20-yard catch-and-run on a third-and-17 play was nullified by Marquise Goodwin's controversial offensive pass interference call. He was flagged for blocking while the pass was in the air to Taylor.
Tennessee had taken a four-point lead on Marcus Mariota's 8-yard touchdown pass to Rishard Matthews.
Garoppolo got off to a hot start in leading the 49ers on scoring drives in all four of their first-half possessions until running out the final 29 seconds before of halftime.
The 49ers punched it into the end zone in the second quarter after the team settled for two Gould field goals.
On third and goal from the 5, Garoppolo bought time by rolling to his right and found tight end Garrett Celek alone in the end zone. The touchdown gave the 49ers a 13-3 lead.
The defense forced an immediate takeaway when linebacker Brock Coyle stripped former 49ers tight end Delanie Walker after a short completion. Rookie safety Adrian Colbert recovered at the Tennessee 46-yard line.
The 49ers cashed in with Gould's 28-yard field goal for a 16-3 lead late in the first half. Gould's previous kicks were good from 38 and 48 yards.
But Mariota drove the Titans 79 yards down the field in 68 seconds for a touchdown on a 4-yard touchdown pass to Walker. The 49ers led 16-10 at halftime.
GOODWIN, A GOOD ONE
Goodwin has thrived since Garoppolo's insertion into the starting lineup. Goodwin had eight catches for 99 yards in Garoppolo's first start against Chicago, then came back for six receptions for 106 yards against Houston.
Goodwin again proved to be a huge part of the team's offense. He caught a career-high 10 passes for 114 yards and has gained Garoppolo's trust. In the first half, under pressure Garoppolo threw pass off his back foot that Goodwin went up and caught against Titans defensive back Da'Norris Searcy.
Goodwin was credited with the catch on the simultaneous possession. Tennessee coach Mike Mularkey challenged the call, but the play was upheld as a Goodwin catch for 10 yards.
THIS ‘N' THAT
--Cornerback Tyvis Powell was active for the game with backup Greg Mabin being ruled out of action due to a calf injury. Ahkello Witherspoon, who was listed as questionable with a knee injury, started and played the entire game.
--Garoppolo completed 18 of 26 passes for 189 yards in the first half, already giving him more yards passing in his first 2 ½ games as the starter than any other 49ers quarterback in his first three starts in franchise history.
--Wide receiver Aldrick Robinson sustained a concussion in the first half on an incomplete pass near the Titans sideline. He was ruled out for the game, and now goes into the NFL's return-to-play protocol.
--Garoppolo completed passes to nine different receivers – including himself. Garoppolo's fourth-quarter pass was deflected by Titans defensive lineman Austin Johnson at the line of scrimmage and ended up back in Garoppolo's hands. He tried to advance the ball but linebacker Wesley Woodyard dropped him for a 6-yard loss.