Jimmy Garoppolo, not retiring. His career, in fact, looks back on track.

It was not flawless but it was the pick-me-up game Garoppolo needed in the 49ers most vital exhibition, a 27-17 win Saturday night against the host Kansas City Chiefs.

Garoppolo’s confidence ramped up throughout his first-half workload. He completed 14-of-20 passes for 188 yards with no interceptions and a dandy, 20-yard touchdown toss to a diving Matt Breida on a near-perfect second series.

It was a reprieve after five days of Garoppolo bashing from critical media and fearful fans, the result of his 10-snap cameo Monday in Denver (1-of-6, 0 yards, one interception).

“Jimmy was pumped for today,” coach Kyle Shanahan told reporters. “When guys don’t play well the week before and everyone is talking about it, all guys want to do is get back out there, and it couldn’t come fast enough. I’m glad it worked out for him.”

It wasn’t all glory. Some early throws were behind targets, and he still hasn’t fully tested his rebuilt left knee by stepping hard into a throw or scrambling out of the pocket, which is fine, for now.

“It was a good step coming back here to K.C. where it started,” Garoppolo said. “To get that out of the way, it was another step in the right direction.”

In pregame, he literally retraced his steps from last season and went to the spot near the 49ers sideline where he tore the antereior cruicate ligament in his left knee. “Once I did that, it was over with and time to move on,” Garoppolo said.

The 49ers (3-0 in expition play) saw their opening series end with Garoppolo’s fourth-and-1 pass getting batted down, causing flashbacks of Monday’s debut in which two passes were rejected in the same passing lane.

His second series was an elixir. Garoppolo went 4-for-4, capped by the touchdown pass with the 49ers easily giving him time to throw against only three pass rushers. Setting up that score were solid completions to Deebo Samuel, Dante Pettis and a 33-yarder to Richie James that may have been his best throw of the night.

His worst throw: Just before halftime, Garoppolo tried to throw a 19-yard scoring strike to a triple covered Dante Pettis at the goal line.

Now on to other key takeaways from the dress rehearsal in which most starters played up to halftime:

KEEPING THREE QBS

Shanahan said after the game he plans on keeping both Nick Mullens and C.J. Beathard as backups, rather than trade one to a quarterback-needy team such as the Indianapolis Colts, who lost Andrew Luck to retirement Saturday.

“We’re not going to ever just get rid of NFL players. I know we have three NFL quarterbacks who can help us,” Shanahan said. “They’re not easy to come by, regardless of where you draft them. When you have that, you just don’t give it away. Sometimes it takes years to find.”

Mullens (8-of-11, 84 yards) was replaced in the final three minutes by rookie Wilton Speight, rather than C.J. Beathard, who will start the exhibition finale, Shanahan said. Mullens has been playing through a left-oblique strain the past week, according to 49ers television announcer Greg Papa.

Shanahan said of Luck’s retirement: “It shocked me as much as anyone. One of best guys in league and one of the most impressive people I’ve been around going through the interview process. That was crazy.”

PASS RUSH NEEDED

Chiefs quarterback Patrick Mahomes completed his first eight passes for 126 yards and didn’t get sacked through two series. It was a reminder why the 49ers focused this offseason on adding pass rushers Dee Ford and Nick Bosa. Neither played this game and likely won’t make their 49ers debuts until Sept. 8 at Tampa Bay, with Bosa’s ankle being more of a question mark than Ford’s knee.

Arik Armstead and Damontre Moore combined on a third-down sack on Mahomes’ replacement, Chad Henne. Moore played with a cast on a dislocated thumb, finished with two sacks and looks like a legitimate option if the 49ers need to carry an extra defensive linemen to cover for Bosa.

Solomon Thomas also lined up at defensive end – more as an injury replacement to Ford, Bosa and Ronald Blair – and even though Thomas predictably got burned by running back Damien Williams on a 62-yard touchdown catch-and-run, safety Jaquiski Tartt missed a tackle at the 45-yard line.

IS BREIDA TOP RUSHER?

Matt Breida stated a stronger case than Tevin Coleman to start at running back. Breida averaged 6.3 yards per carry (17 carries, 44 yards) and he impressed Shanahan with his fearless, diving catch for the touchdown . “Breida will surprise you with some of his catches,” Shanahan said.

Coleman, formerly of the Atlanta Falcons, is no slouch and certainly offers a bigger body for a bigger workload. But he averaged only 2.1 yards per carry (9 carries, 19 yards), plus a 2-yard reception. With Raheem Mostert (quadriceps) and Jerick McKinnon (knee) not playing, that allowed Jeff Wilson to remind everyone of his capabilities, and he ran for two touchdwons in the fourth quarter.

NEW LINEBACKER TANDEM

Kwon Alexander and Fred Warner looked like a complementary pairing at inside linebacker. This was Alexander’s 49ers debut and first chance to show his range at full speed since last October’s ACL tear with the Tampa Bay Buccaneers. “Everything worked out perfect,” Alexander said.

Alexander had three tackles, including an I’m-back moment when he sped to help Moore stop a screen pass. Warner had two tackles.

WARD LOOKS FAMILIAR

Jimmie Ward arrived in 2014 as a nickel back, and he surfaced there covering slot receivers quite well in his exhibition debut Saturday. He also played some free safety but the Chiefs routinely used multiple receivers, so Tarvarius Moore filled in at safety when Ward took his ample snaps at nickel. Limited all offseason and training camp after a collarbone fracture, Ward looked feisty and also drew an offensive pass interference call.

LINE BETTER, NOT PERFECT

Garoppolo commended his protection, saying: “The line blocked tremendously up front, i barely got toched and that makes everything easier.” Left tackle Joe Staley got beat around the edge by former Seahawks nemesis Frank Clark for the first sack of Garoppolo this preseason.

You might want to buy stock in Daniel Brunskill as a reserve offensive lineman — and sell off Joshua Garnett. Despite returning to practice with a protective glove for his finger injury, Garnett remained out of exhibition action. Instead, the 49ers sent in Brunskill to relieve Mike Person on the fourth series with the first-string unit. Person strained his left foot last week. Brunskill acquitted himself well. Najee Toran, last game’s starting right guard, allowed a third-down sack at left guard after halftime but helped spring Wilson’s second touchdown. Related Articles 49ers-Giants injury report: George Kittle, Jimmy Garoppolo among those out

49ers’ Nick Mullens has something up his sleeve for start against Giants

Where does the NFL send money after fining 49ers’ Shanahan, Raiders’ Gruden over face masks?

49ers at Giants: Five keys to winning while avoiding MetLife Stadium’s trap door

George Kittle just might return from knee injury vs. Giants despite MetLife field concerns

HERE KITTLE, KITTLE

Of course Ross Dwelley is no George Kittle. But Dwelley made Kittle look even more irreplaceable. Dwelley had a couple drops, including a third-down contested throw near the goal line. To his credit, Dwelley made a couple receptions to get the 49ers into the red zone. The 49ers wisely have kept Kittle far away from these exhibitions, the past two because of a calf strain that is minor enough he was able to practice some Thursday. Levine Toilolo got the start but is more of a blocking specialist.

SO-SO SPECIAL TEAMS

Pettis is not looking like the record-setting punt returner he was in college. He backpedaled about 10 yards before muffing a second-quarter punt, which he recovered. The 49ers figure to use Pettis in that capacity while Trent Taylor recovers from a broken foot. Pettis made a fair catch on the Chiefs’ next punt.

As for other special-teams notes, Mitch Wishnowsky saved his biggest hit for a third-quarter punt that sailed 62 yards, Robbie Gould made both his field-goal attempts, and veteran linebackers David Mayo and Mark Nzeocha fared well on coverage units.