CINCINNATI -- Wide receiver Deebo Samuel returned to action after missing one game with a groin injury.
And Brandon Aiyuk stepped into a larger role to play nearly every snap in the 49ers’ 26-23 overtime victory against the Cincinnati Bengals on Sunday.
Aiyuk supplied the winning points with a 12-yard touchdown pass from Jimmy Garoppolo with 1:53 remaining in the extra period.
“I didn’t expect it to score,” 49ers coach Kyle Shanahan said. “I thought it would hopefully get us inside the 3. But the move that he made was unbelievable. I still don’t know how he got in.”
Aiyuk played 67 of the 49ers’ 71 offensive plays. He caught six passes for 62 on the day.
Samuel played 55 snaps, and had a full day of work of his own. He had eight rushing attempts for 37 yards and one touchdown. He caught one pass for 22 yards.
Aiyuk struggled at the beginning of the season with the small details of the game, including his work ethic in practice. He even had a difficult time getting playing time in the first weeks of the season.
But he has responded to Shanahan’s challenge.
“He’s a young guy, and he’s everything we hoped he would be in terms of the person and the talent,” Shanahan said. “And there’s a lot there. He’s getting better each week.”
On defense, rookie cornerback Ambry Thomas made his first career start and had an up-and-down game.
He was part of a 49ers’ defensive effort that kept the Bengals out of the end zone for nearly 3 1/2 quarters.
But Thomas had penalties that wiped out a Jimmie Ward interception and a Nick Bosa sack. He was beaten late in regulation on Joe Burrow’s 32-yard touchdown pass to rookie Ja’Marr Chase.
Thomas played 62 snaps before exiting the game for the final five defensive snaps when he was evaluated for a head injury. He was credited with six tackles in the game.
Here is how much action every 49ers player saw on offense, defense and special teams ...
Quarterback: Jimmy Garoppolo 71
Running back: Jeff Wilson 42, Kyle Juszczyk 31, JaMycal Hasty 14
Wide receiver: Brandon Aiyuk 67, Deebo Samuel 55, Jauan Jennings 47, Trent Sherfield 13, Travis Benjamin 2
Tight end: George Kittle 68, Charlie Woerner 14, Ross Dwelley 2
Offensive line: Laken Tomlinson 71, Daniel Brunskill 71, Tom Compton 71, Alex Mack 71, Trent Williams 71
Defensive line: Nick Bosa 55, Arik Armstead 49, Samson Ebukam 38, D.J. Jones 35, Arden Key 25, Kevin Givens 19, Jordan Willis 18, Kentavius Street 15, Charles Omenihu 14
Linebacker: Fred Warner 67, Azeez Al-Shaair 42, Marcell Harris 22
Cornerback: Josh Norman 67, Ambry Thomas 62, K’Waun Williams 60, Deommodore Lenoir 5
Safety: Jimmie Ward 67, Jaquiski Tartt 46, Talanoa Hufanga 31
Special teams: Demetrius Flannigan-Fowles 28, Harris 28, Lenoir 28, Woerner 27, Hufanga 25, Mitch Wishnowsky 18, River Cracraft 18, Brian Hill 16, Dwelley 16, Javon Wilson 15, Hasty 15, Tartt 13, Taybor Pepper 12, Armstead 12, Willis 12, Saivion Smith 11, Jones 11, Juszczyk 7, Key 7, Robbie Gould 5, Aaron Banks 5, Jake Brendel 5, Brunskill 5, Tomlinson 5, Compton 5, Thomas 5, Omenihu 5, Aiyuk 4, Sherfield 4, Ward 1, Warner 1, K.Williams 1, Bosa 1, Al-Shaair 1, Ebukam 1
Did not play: QB Trey Lance, OL Jaylon Moore
Not active: RB Elijah Mitchell (concussion/knee), CB Dontae Johnson (personal), LB Tyrell Adams, LB Dre Greenlaw (groin), OL Colton McKivitz, DL Maurice Hurst (calf)