SAN FRANCISCO -- For five years, Vernon Davis has practiced leaping, over-the-shoulder catches in practice like the one he pulled off for a 28-yard gain on the way to a spectacular, career day against the Arizona Cardinals.
The difference is this time he caught the ball from quarterback Colin Kaepernick instead of assistant athletic trainer Nathan Breske.
No matter. Davis delivered with touchdown catches of 61 and 35 yards and finished with a career-best 180 yards receiving to lead the San Francisco 49ers to their third straight victory with a 32-20 win Sunday.
"Every day that I'm in practice I work on that play," Davis said. "You want to work on it because it's difficult. You really have to keep your eyes on the ball, you have to focus and just wait for it to come down."
Even coach Jim Harbaugh was unsure Davis had it.
Davis wound up with eight catches in his first 100-yard game of the year and second straight with a touchdown reception of at least 60 yards. He had a 64-yarder in a 34-3 rout of the Texans.
Davis has scored touchdowns in three straight games after going without a TD in the team's two losses.
"Those were great plays he made," Harbaugh said.
Here are five things to know from San Francisco's win against Arizona:
LOSING CAMPBELL: Arizona's much-improved defence lost end Calais Campbell to an unspecified injury in a scary scene.
After landing awkwardly on a tackle of Frank Gore, Campbell was down for several minutes with teammates and 49ers players gathered around before being carted off with 4:56 left in the game.
Coach Bruce Arians said it was a precautionary move.
"He left the field with movement and the feeling was coming back," Arians said. "He had numbness. It was precautionary."
Cardinals spokesman Mark Dalton said on Twitter that Campbell "was taken to a Bay Area hospital to undergo precautionary MRI and CT scans. Initial results have been positive and he will continue to be evaluated."
Campbell was released from the hospital late Sunday, returned to Arizona and was at the team meetings Monday morning.
PALMER'S PROBLEMS: Palmer sure has been a mixed bag so far in his first season as Arizona's quarterback.
On Sunday, he went 21 for 45 for 298 yards and two touchdowns with a pair of interceptions and a sack in the end zone for a 49ers safety.
It didn't help his cause beginning drives at his own 12, 3, 1 and 7 in the first half. And Arizona has been among the worst in the NFL for red-zone production.
"You've got to score more points than we did," he said.
SECONDARY GAMBLES: A week after getting three interceptions in a rout of the Houston Texans, San Francisco's aggressive secondary was at it again. Rookie Eric Reid had his team-leading third interception in the first quarter and ran it back 53 yards to set up Phil Dawson's first field goal of the day.
Tramaine Brock, who had two picks the previous week against Matt Schaub and earned NFC Defensive Player of the Week honours, gambled later as the 49ers gave up Larry Fitzgerald's 75-yard touchdown.
Then, Carlos Rogers made his first interception of the season. But Rogers got beat on Brittan Golden's 53-yard reception midway through the second quarter that set up Andre Ellington's 15-yard touchdown run.
Still, all eight of San Francisco's takeaways the past two games have resulted in points.
"Coach Vic (Fangio) has been preaching that since training camp, getting back to the basics of being physical and getting turnovers," Reid said. "As many turnovers as we can get, that's what we like to do."
FITZGERALD'S OUTING: Fitzgerald had a season-best 117 yards receiving on six catches and scored his 12th career touchdown against the 49ers to match Andre Rison for most all-time against San Francisco.
But a costly fumble with his team driving in the third quarter erased any joy from his big day.
"I am not going to sleep at all. I let my team down in that situation," Fitzgerald said. "I wish I could take it back. We were driving, running the football, really the momentum in our favour and I got a little careless with the football. To be in a game that close, you can't have those kinds of mistakes."
QUIET DAY FOR BOLDIN: Anquan Boldin dropped the ball on the first two passes thrown his way, though one was low and slightly off target from Kaepernick on San Francisco's first play. Boldin couldn't get a hold of the ball for what would have been a 20-yard gain.
He wound up with just three catches for 28 yards while facing his former team.
After getting 13 catches in his 49ers debut against Green Bay, Boldin had 13 combined over the next four games, then the three Sunday.
The Cardinals chose him in the second round of the 2003 draft out of Florida State, and he still holds several franchise records.
Boldin did make career catch No. 800 Sunday. But he wasn't celebrating one bit.
"Nothing," Boldin said when asked about the milestone. "We've got to win. That's all that matters."