KANSAS CITY, Mo. — San Francisco quarterback Jimmy Garoppolo was impressive in his return to Arrowhead Stadium, and Chiefs counterpart Patrick Mahomes may have been even better, as the 49ers beat Kansas City 27-17 in their third preseason game Saturday night.
Garoppolo was 14 of 20 for 188 yards while playing the entire first half in a much better showing than his preseason debut against Denver last week. Garoppolo led the 49ers deep into Kansas City territory four times, throwing a nice TD pass to Matt Breida and getting two field goals from Robbie Gould.
It was an encouraging night for Garoppolo on another front: He was able to put to rest any lingering memories from last season, when he tore up his knee during a Week 3 game in Kansas City.
Mahomes finished 8 of 10 for 126 yards, highlighted by a 62-yard catch-and-run to Damien Williams in which the Chiefs’ injury-prone running back raced right by the woebegone linebacker covering him.
Mahomes was so sharp in what was likely his final tuneup before the regular season that the league MVP even completed his first incompletion — it was just caught out of bounds. His only other misfire was a drop by backup tight end Blake Bell before coach Andy Reid gave Mahomes a visor to wear.
Garoppolo kept his helmet on, leading a two-minute drill that gave the 49ers a go-ahead field goal.
The 49ers clung to that 13-10 halftime advantage until Chiefs backup quarterback Kyle Shurmur led a 13-play, 97-yard drive that took up most of the third quarter. Byron Pringle capped it with a short TD run as the second-year pro tries to make the Chiefs as an extra wide receiver.
The 49ers answered with a 12-play drive. Nick Mullens, who is battling C.J. Beathard for their backup quarterback job, led the way and Jeff Wilson Jr. finished it with a TD run.
Wilson put the game away with another touchdown run with 3:41 to go.
Star tight ends are quiet
The 49ers’ George Kittle broke Travis Kelce’s season yardage record for tight ends within hours of him setting it during Week 17 last season. But neither dented the stat sheet Saturday night. Kittle didn’t play with a bothersome calf while Kelce did not have a catch for Kansas City.
Chiefs LB Darron Lee left with a chest injury. ... CB Bashaud Breeland hurt his left shoulder while making a tackle along the sideline in the first half, though he eventually returned to the game.
Rain, rain, go away
The Chiefs’ game last week in Pittsburgh was delayed about an hour by lightning. Rain fell off and on Saturday night, too, though the game continued without any delays.
Chiefs: Visit Green Bay for their preseason finale Thursday night.