Three touchdowns have proved enough for the San Francisco 49ers to earn a 32-20 victory over the Arizona Cardinals tonight, holding off a third-quarter fightback to secure their fourth win of the season.
San Francisco started brightly and put two field goals over early in the first quarter, but the Cardinals soon struck back as Larry Fitzgerald found space to run a full 75 yards for the game's first touchdown.
Arizona's attempt to build momentum was soon cut off in the second quarter though, with Carlson Palmer sacked in the endzone for a safety by Corey Lemonier.
49ers quarterback Colin Kapernick then found Vernon Davis with a superb pick from 61 yards for his first touchdown pass of the night, giving the hosts a 15-7 lead.
The Cardinals then drove up the middle and closed the deficit to one point through Andre Ellington, who finished a swift drive to score on a 15-yard run.
With two minutes left in the first half San Francisco responded to extend their advantage through Davis, who collected another precision pass from Kapernick for his second touchdown of the night.
Arizona came out strong in the third quarter and wasted little time reducing the deficit, with Palmer finding Michael Floyd for a 10-yard touchdown pass.
An attempted two-point conversion in search of Fitzgerald fell short and from there the Cardinals lost momentum, failing to press home promising positions in the third quarter.
With a slender two-point lead the 49ers played sensible football and eventually moved further ahead through Kendall Hunter, who bundled into the endzone from six yards.
Phil Dawson then struck a 44-yard field goal two minutes later to make sure of an important victory, with a third win on the spin enough to put San Francisco second in the NFC West.