49ers 27, Cardinals 13: Colin Kaepernick tossed a pair of touchdown passes to Michael Crabtree as host San Francisco secured its second consecutive NFC West title and a first-round playoff bye.
Kaepernick threw for 276 yards, with Crabtree accounting for 172 of them on eight receptions. Frank Gore set a franchise record with his 51st rushing touchdown for the 49ers (11-4-1), who seized the No. 2 seed in the NFC playoffs after Green Bay fell 37-34 to Minnesota later Sunday.
Acquired off waivers earlier this month, Brian Hoyer made his first career start and found a familiar target in Michael Floyd. The rookie wideout had a season-best eight catches for 166 yards with a touchdown for the Cardinals (5-11), who have dropped 11 of their last 12 overall - and seven straight on the road.
With Arizona nursing a 6-0 lead midway into the second quarter, Kaepernick moved around in the pocket and fired a strike over the shoulder to Crabtree, who coasted into the end zone.
The pair hooked up again in the third quarter as Crabtree beat cornerback Patrick Peterson on a 7-yard scoring strike to give San Francisco a 17-6 advantage.
GAME NOTEBOOK: Crabtree ventured over the 1,000-yard plateau for the first time in his career. With 1,105 yards, Crabtree became the first 49ers WR to accomplish the feat since Terrell Owens in 2003. ... San Francisco TE Vernon Davis was active after clearing the league's concussion protocol, but was limited to one catch for five yards. ... Gore shared the previous rushing record with Roger Craig and Joe Perry.