SAN FRANCISCO -- Wide receiver Michael Crabtree caught eight passes for a career-high 172 yards and two touchdowns Sunday at Candlestick Park, as the San Francisco 49ers beat the Arizona Cardinals 27-13 to capture their second consecutive NFC West title.
The 49ers (11-4-1) earned the No. 2 playoff seed in the NFC and a first-round bye when the Minnesota Vikings beat the Green Bay Packers 37-34 on a last-second field goal.
Niners quarterback Colin Kaepernick completed 16 of 28 passes for 276 yards and two scores.
Arizona fell to 5-11 as quarterback Brian Hoyer, making his first career start, went 19 of 34 for 225 yards and one touchdown, a 37-yard strike to Michael Floyd with 1:59 left to play.
Crabtree entered the game with 933 receiving yards and wasted little time becoming the first 49er to crack the 1,000-yard mark since Terrell Owens in 2003.
Crabtree caught four passes for 116 yards in the first half, including a 49-yard touchdown that put the 49ers ahead 7-6 with 7:20 left before intermission.
On the 49ers' first possession of the second half, Crabtree caught a key 28-yard pass that gave him 144 yards, and snapping his previous career high of 122, set on Dec. 26, 2010, at St. Louis.
The 49ers marched 54 yards in nine plays on that drive and extended their lead to 10-6 on a 43-yard field goal by David Akers, who had missed twice in the first half, from 44 yards and then 40.
The San Francisco defense forced a quick three-and-out. Ricky Jean-Francois sacked Hoyer for a 9-yard loss, and then linebacker Ahmad Brooks dropped him for another 9-yard loss. On third down, linebacker Patrick Willis stopped running back William Powell for no gain.
Ted Ginn Jr. returned Dave Zastudil's punt 28 yards to the Arizona 38. On second down, Kaepernick fired a strike over the middle to tight end Delanie Walker for 27 yards.
On third-and-goal from the 7, Kaepernick and Crabtree hooked up for another touchdown, putting the 49ers ahead 17-6 with 5:58 left in the third. Crabtree went in motion, right to left, and angled sharply toward to the left sideline, getting a step ahead of Cardinals cornerback Patrick Peterson, who went for the interception but whiffed.
The 49ers upped their lead to 24-6 with 12:59 left on Frank Gore's 2-yard touchdown run, capping a 12-play, 72-yard drive. Gore scored his 51st career rushing touchdown, breaking the franchise record he shared with Joe Perry and Roger Craig.
Crabtree, naturally, had a huge play on the drive, making a 14-yard catch on fourth-and-6 from the Cardinals' 36. On the next play, Kaepernick hit Gore in the right flat for 14 yards to the Arizona 8. Three plays later, Gore powered into the end zone.
Akers' 26-yard field goal made it 27-6 with 9:07 left.
With 5:57 left to play, Alex Smith came off the bench to a warm reception when he replaced Kaepernick. Smith completed his only pass for 6 yards.
The 49ers spotted Arizona a 6-0 lead in the first half on a pair of Jay Feely field goals before marching 80 yards in two plays for the go-ahead score.
On the drive's first play, Kaepernick hit Crabtree for 31 yards on a post pattern to the Arizona 49. Kaepernick and then Crabtree capitalized on a coverage meltdown by the Cardinals. Crabtree, lined up in the left slot, had free safety Kerry Rhodes in front of him when he began his route. But Rhodes angled toward the flat, and Crabtree headed toward the left sideline, then shot past Peterson. Kaepernick hit the wide-open Crabtree for a 49-yard score.
Kaepernick completed seven of 13 passes for 146 yards and one score in the first half. Hoyer, meanwhile, went eight of 18 for 103 yards.
NOTES: Niners starting defensive tackle Justin Smith was inactive with a partial tear of his left triceps tendon and a bone spur in his left elbow. Jean-Francois started in his place. ... Cardinals starting left tackle Nate Potter was inactive with an ankle injury. D'Anthony Batiste, a seventh-year pro from Louisiana-Lafayette, started in his place. ... Jim Dray started at fullback for Arizona in place of Anthony Sherman, who was inactive because of a knee injury. ... Cardinals starting right guard Pat McQuistan injured his left ankle late in the first quarter and did not return to the game. Senio Kelemete replaced him. ... Arizona linebacker Paris Lenon injured his left hand in the second half. ... Niners outside linebacker Aldon Smith entered the game with 19.5 sacks, three behind Michael Strahan's NFL record, but he didn't record a sack.