Blaine Gabbert outplayed his more celebrated counterpart, Carson Palmer, on the stat sheet Sunday and threw for more yards, 318, than at any point in his career.
After the game, however, the 49ers quarterback was kicking himself for decisions on a pair of third-down plays. San Francisco was 0-9 on third downs against the Cardinals and scored only 13 points, below even the league-worst 13.9-point average with which they entered the game.
"All you can ask for is the ball at the end of the game with a chance to win," Gabbert said. "And that’s what I came down to and I failed to put a touchdown on the board, and that’s on me.”
Gabbert's first regret came on the team's opening drive when, on third and nine, he was sacked by Arizona linebacker Markus Golden. The seven-yard loss knocked the 49ers back to the Arizona 40-yard line, which is just outside of Phil Dawson's field goal range.
“I left points out there on that drive," Gabbert said. "We've just got to find ways to put touchdowns on the board.”
At the end of the game, Gabbert was driving the 49ers toward a game-winning score. But on third and 10 he suffered his second sack of the game. That created a fourth-and-20 scenario on which the 49ers came up two yards short.
"You don’t want to take a sack there at all," Jim Tomsula said. "We obviously don’t want that. So if there’s a way to get rid of that ball, we need to."
Still, Gabbert finished with a 94.4 passer rating and has the confidence of both his teammates and coaches.
"He's poised, he's under control," said receiver Anquan Boldin, who caught eight passes for 93 yards. "He has good control of the offense. He understands where he needs to go with the ball. He understands when he's hot, when he needs to get rid of it. He's playing really well for us right now."
Draughn but not out -- Shaun Draughn started his third straight game at running back for the 49ers. What was odd was that he never came out of the game on offense.
That speaks not only to Draughn's ability as a runner but the 49ers' confidence in him as a pass protector.
“Shaun’s done a tremendous job. You saw that from the first day he got here, he was eager to learn this system as fast as possible to make a difference on Sundays," Gabbert said. "That guy is playing his tail off from a protection standpoint, running the football, catching the football out of the backfield. He’s what you want in a running back.”
The 49ers have two other running backs on the roster, Travaris Cadet and Kendall Gaskins. Cadet, however, didn't enter the game while Gaskins didn't have a carry.
Celek hurt -- Garrett Celek, who had been the 49ers' best tight end through 10 games this season, was carted off the field with a high-ankle sprain in the first quarter.
Celek was blocking for Draughn on an outside run when Draughn was tackled on the back of Celek's ankle. That left the 49ers with just two tight ends, Vance McDonald and rookie Blake Bell, on the active roster. Another tight end, Brian Leonhardt, is on the practice squad and could be elevated to the 53-man roster if Celek is out, as expected, for multiple weeks.
Celek has more receiving yards than any other 49ers tight end and his three touchdown catches lead the team.
New starters -- Eli Harold and Mike Purcell started for the first time in their careers. Harold, a third-round pick this season, started at right outside linebacker in place of Ahmad Brooks, who suffered a concussion in last week's game.
Purcell started in place of Glenn Dorsey, who was placed on injured reserve last week with an ACL injury. Purcell recorded the only sack of the game for the 49ers.
Et cetera -- With Brooks out and with Dorsey and Antoine Bethea on injured reserve, the 49ers’ oldest defender is 28-year-old linebacker Michael Wilhoite.
* McDonald scored his second touchdown in as many weeks after he had no touchdowns in his first 31 NFL games.
* Colin Kaepernick, who had shoulder surgery Tuesday, is expected to begin rehabilitating at the 49ers facility Monday.