GLENDALE, Ariz. — Brian Westbrook rushed for 136 yards and a touchdown in place of injured Frank Gore and the 49ers sent the punchless Cardinals to their sixth straight loss, 27-6 Monday night in a shower of boos from the Arizona home crowd.
Westbrook, who had 9 yards in five carries all season, carried 23 times in his 21st career 100-yard game, his first since Dec. 7, 2008, for Philadelphia against the Giants.
San Francisco (4-7), beaten at home by the Bucs 21-0 last week, improved to 3-1 since Troy Smith became starting quarterback and pulled within a game of co-leaders St. Louis and Seattle in the NFC West.
Arizona (3-8), two-time defending division champion, has not lost this many in a row since eight straight in 2006, Dennis Green's final season as coach.
San Francisco had 18 rushing first downs; Arizona had none.
San Francisco ran over Arizona early, scoring its most first-half points (21) in more than two years.
Michael Crabtree opened the scoring with a diving 38-yard touchdown catch from Smith, one play after the 49ers recovered a botched handoff — Arizona's 27th turnover of the season — between Derek Anderson and Beanie Wells on the Cardinals' first play.
Gore injured a hip in the first quarter and briefly tried to come back before going out for good in the second quarter.
Ted Ginn had a kickoff return of 41 yards and a punt return for 42, both leading to San Francisco touchdowns.
The 49ers' Shane Andrus, kicking in place of injured Joe Nedney, missed a 47-yard field goal and had a 37-yarder blocked.