SANTA CLARA, Calif. -- Jimmy Garoppolo led one final scoring drive in the closing seconds to cap a fantastic first home start, Robbie Gould kicked a game-winning 45-yard field goal as time expired, and the San Francisco 49ers topped the Tennessee Titans 25-23 on Sunday.
Garoppolo threw for a career-high 381 yards and a touchdown during a dominant day to give the 49ers (4-10) a three-game winning streak in a lost season. And Tom Brady's former backup showed he could do it at home as well as on the road -- and against a playoff contender, no less -- outdueling Marcus Mariota down the stretch as the teams traded field goals.
Gould kicked three of his six field goals over the final nine minutes: 50, 48 and 45 yards and has now gone 20 consecutive without a miss.
Gould put the Niners out front on a 48-yarder with 3:08 remaining. Mariota then drove the Titans (8-6) to a lead as Ryan Succop kicked a 50-yard field goal with 1:07 to play, then Garoppolo and the San Francisco offense got one last shot.
It took three tries this season, and first-year coach Kyle Shanahan finally found his reliable, playmaking quarterback after acquiring Garoppolo from New England at the October trade deadline. Garoppolo showed that in 67 seconds when forced into late action in a loss to Seattle three weeks ago at Levi's Stadium, then in back-to-back road games before shining again Sunday.
Marquise Goodwin made 10 catches for 114 yards and Garoppolo completed 31 of 43 passes to go over 300 yards passing for the second straight game after last week's win at Houston.
Mariota put Tennessee ahead on an 8-yard touchdown pass to Rishard Matthews early in the fourth as the Titans rallied back from an early 13-point deficit.
The 49ers were in good position the ensuing possession before Garoppolo was sacked by Wesley Woodyard for a 10-yard loss. Then, Gould converted a 50-yarder.
Tennessee came out of intermission a new team, totaling 22 offensive plays to San Francisco's five in the third quarter.
Garoppolo became the first 49ers quarterback since the merger in 1970 to win each of his first three starts and just the second QB to do so in franchise history. Y.A. Tittle did so spanning the 1951-52 seasons.
He threw a 5-yard touchdown pass in the second quarter to tight end Garrett Celek -- whose great play in recent weeks has earned the nickname of "Celek Time." Celek later had a 41-yard catch.
Garoppolo didn't even have Trent Brown to block for him after the right tackle went on injured reserve with a right shoulder injury that will require surgery. Mariota threw a 4-yard TD pass to former 49er Delanie Walker late in the first half to keep the Titans close.
Garoppolo was 5 of 6 passing on his opening possession as San Francisco mixed its play calls well to catch the stingy Titans defense off guard. Gould's 38-yarder capped the 12-play, 64-yard initial drive. Gould hit a 48-yarder late in the first and then kicked one from 28 yards just before halftime.
The Titans played a second straight road game against the NFC West after losing last week to the Cardinals and staying in Arizona for the week of practice.
Their first visit to Levi's Stadium -- Tennessee last played the Niners on the road at Candlestick in November 2009 -- began slowly, the team's second straight week playing a stadium for the initial time.
Mariota, in the midst of one of the worst stretches of his three-year career, threw for 241 yards completing 23 of 33 passes.
Tennessee's typically tough defense was a far cry from that dominant unit in the first half.
Garoppolo threw for 189 yards and the Niners outgained the Titans 219-136 in the first half. The 49ers didn't punt until more than midway through the third quarter.
Last week, the Titans allowed only four field goals, the second time this season they'd done so. From Week 5, Tennessee had been allowing only 295.1 yards per game.
Titans: CB Logan Ryan sustained an ankle injury in the second quarter.
49ers: WR Aldrick Robinson suffered a concussion in the first quarter. He went to the locker room with head and wrist injuries after he was hit hard by Titans cornerback Adoree' Jackson along the Tennessee sideline. Robinson was stretching out trying to make a catch when he got slammed and went down for several minutes with 5:24 to go in the opening quarter.
Titans: Host Rams next Sunday and home the final two weeks.
49ers: Host Jaguars next Sunday.
For more NFL coverage: http://www.pro32.ap.org and http://www.twitter.com/AP-NFL
Eds: This version corrects Titans record.
Mahomes' screen pass to Hunt turns into TD
Patrick Mahomes tosses a quick screen pass to Kareem Hunt, who speeds 21 yards into the end zone for a touchdown.
Mahomes drops TD pass to Hill
Patrick Mahomes sends a pass to Tyreek Hill, who makes the catch in the end zone for a touchdown.
With Nature Boy looking on, the Chiefs-Rams scorefest launches
Points? Probably. Stars? Enough to fit the Hollywood locale. Here's the best from the Chiefs-Rams Monday Night Football showdown.
Family impacted by Borderline tragedy light the torch at MNF
To honor those lost at Borderline Grill and Bar, the wife and son of fallen Sgt. Ron Helus, Karen and Jordan, light the ceremonial torch.
Reynolds makes TD catch in corner of the end zone
Jared Goff sends a pass to Josh Reynolds in the corner of the end zone for a touchdown.
Chiefs-Rams over/under total (64) highest since at least 1986
The total for Monday night's matchup between the Chiefs and Rams closed at an astronomical 64, the highest over/under in an NFL game since at least 1986, according to ESPN Stats & Information research.