SAN FRANCISCO – The 49ers haven’t gotten production from a No. 2 wide receiver this season. On Sunday, they didn’t get much contribution from their No. 1 wideout, either.
But that’s all right. With tight end Vernon Davis, the 49ers’ passing attack was in good hands.
Quarterback Colin Kaepernick kept looking for Davis on Sunday against the Arizona Cardinals, and Davis kept making plays in a 32-20 victory at Candlestick Park.
The victory gives the 49ers (4-2) sole possession of second place in the NFC West over the Cardinals (3-3). The Seattle Seahawks maintained their one-game lead in the division with a 20-13 victory over the Tennessee Titans.
Davis caught touchdown passes of 61 and 35 yards as part of a record-setting first half. His second touchdown grab with 1:55 remaining in the half gave the 49ers a 22-14 lead.
The 49ers’ top wide receiver, Anquan Boldin, caught his 800th career pass, but he did not provide much impact on Sunday against his former team. He finished with just three catches for 28 yards.
Instead, the 49ers turned to Davis in the passing game when the offense was scuffling. Davis caught seven passes for 171 yards . . . in the first half alone.
His previous regular-season career-best was 126 yards, which he set on Dec. 5, 2010, against the Green Bay Packers. Davis had 180 yards receiving in a playoff game against the New Orleans Saints.
Colin Kaepernick completed 16 of 29 passes for 252 yards, two touchdowns, an interception, and he lost a fumble.
For most of the first half, the 49ers’ defense again proved to be their best offense.
Eric Reid and Carlos Rogers intercepted passes from Cardinals quarterback Carson Palmer to stake the 49ers to a 6-0 lead. Reid, a rookie the 49ers traded up to choose with the No. 18 overall draft pick, leads the 49ers with three interceptions.
The defense added two more points in the second quarter, giving the 49ers an 8-7 lead when rookie outside linebacker Corey Lemonier beat left tackle Bradley Sowell to sack Palmer in the end zone for a safety. Lemonier also forced a fourth-quarter fumble.
After the strong start, the 49ers’ defense had some letdowns to allow the Cardinals to strike quickly. Larry Fitzgerald caught a slant and slipped between safety Donte Whitner and cornerback Tramaine Brock for a 75-yard touchdown.
In the middle of the second quarter, receiver Brittan Golden beat Carlos Rogers on a 53-yard pass. One play later, Andre Ellington slipped through the 49ers’ defense for a 15-yard touchdown run to cut the 49ers’ lead to 15-14.
Injury concerns: The 49ers have some issues on the defensive line at a time when they’re expecting rookies Tank Carradine and Quinton Dial to begin practicing this week. Carradine and Dial are currently on the reserve/non-football injury list.
Nose tackle Glenn Dorsey sustained a right hamstring injury in the first quarter Sunday and did not return to action. And defensive end Ray McDonald appeared to be favoring his right arm after sustaining a partially torn biceps tendon last week against the Houston Texans.
Dorsey grabbed his right hamstring upon falling to the ground while pursuing Arizona Cardinals running back Andre Ellington on a 5-yard gain.
Tony Jerod-Eddie replaced Dorsey in the lineup. Earlier this season, Dorsey took over as the starter after Ian Williams sustained a season-ending fractured ankle against the Seattle Seahawks.
The 49ers expect to get the services of rookie nose tackle Quinton Dial, a fifth-round pick from Alabama, in the coming weeks. Dial is on the reserve/non-football injury list after undergoing toe surgery in January.
Also, backup inside linebacker and special-teams contributor Michael Wilhoite left the game in the third quarter with injuries to his forearm and quadriceps.
Left guard Mike Iupati left the game briefly in the fourth quarter with an apparent shoulder stinger He returned after missing only a handful of plays.
Two or not to two: Down 22-20 after Michael Floyd’s 10-yard TD catch from Palmer, Cardinals first-year coach Bruce Arians opted for a two-point conversion with 23 minutes remaining in regulation. Patrick Peterson's pass fell incomplete.
The strategy came back to haunt the Cardinals when the 49ers cashed in an 18-play, 89-yard scoring drive with Kendall Hunter’s 6-yard scoring run. The play gave the 49ers a two-score lead, 29-20, with 6:35 remaining.
After a slow start, running back Frank Gore heated up in the second half and finished with 101 yards on 25 rushing attempts.
This ‘n’ that: There does not appear to be any roles for running back LaMichael James or cornerback Nnamdi Asomugha as long as the 49ers remain healthy at their positions. James and Asomugha were both listed among the team’s seven inactive players. Tramaine Brock has overtaken Asomugha as the 49ers’ No. 3 cornerback. . . . Kyle Williams, back deep on receive kickoffs in place of James, muffed the kickoff to open the second half. The ball bounced onto the playing field, and Williams was tackled at the 6-yard line. After forcing a three and out, the Cardinals used the good field position to march down the field and score a touchdown on Palmer’s 10-yard scoring pass to Michael Floyd . . . Linebacker Patrick Willis returned to the starting lineup after missing two games with a groin strain, and he provided a big play near the end of the third quarter when he stripped Fitzgerald as the Cardinals were driving deep into 49ers territory. Reid recovered the fumble at the 49ers’ 11.