The 49ers beat the Cardinals 23-20 on a Phil Dawson field goal as time expired, and as a reward for their efforts — and 12-4 record — they’ve earned a trip to Green Bay, Wisconsin. The Packers beat the Bears 33-28 at Soldier Field, and despite a record of 8-7-1 they’ll provide as much of a challenge as any team the 49ers could’ve faced in the first round of the playoffs.

It’s only right, since this entire season has been about taking the most difficult road possible from the moment Michael Crabtree tore his Achilles in May. Now the San Francisco 49ers’ most difficult challenge awaits: a playoff path that’ll include three road games against NFC opponents … unless the New Orleans Saints also win their next two games on the road, which seems extremely unlikely.

The 49ers looked like they were on their way to a fun little romp over the Cardinals after they jumped out to an early 10-0 lead, as Anquan Boldin ran freely across that turf in Arizona that’s just a little greener than what natural grass should be.

But the Cardinals ignored the score of the Saints/Bucs game and kept fighting.

And the 49ers kept treading water.

The Cardinals out-gained the 49ers in total yards by a significant margin, 482-375. They also held the ball for about five minutes longer. More worrisome for the 49ers, who wanted to end the season on a good note even though their chances at a top-two seed evaporated when the Seahawks squashed the Rams, Arizona mounted a comeback highlighted by a 39-yard touchdown catch by Andre Roberts. Roberts pushed off, but on a play that good it’s hard to find fault.

The 49ers couldn’t run the ball at all, with Frank Gore mustering only 14 yards on 13 carries and 26 of their 83 rushing yards coming on one Quinton Patton reverse. So it was up to Colin Kaepernick to win the game with his arm, along with some help from the right leg of Dawson.

Dawson clubbed a 56-yard field goal, a brief moment of redemption after his consecutive field goals streak was snapped on a 24-yarder he hooked wide left after holder Andy Lee put the laces in (toward Dawson’s foot). Dawson made three field goals on the day, including a 40-yarder as time expired to clinch the 49ers’ ninth win in their last 10 games against the Cardinals.

Dawson’s game-winner came from a fairly easy distance because Kaepernick led the team on a 42-yard, three-play drive after the 49ers got the ball with 29 seconds left. Lots of heroes here, so it feels like a good time to break out the bullet points.

  • LaMichael James scared the bejeezus out of everyone by losing the ball, but he was down by contact and put the 49ers in great position with a kickoff return that placed the 49ers at their own 36.
  • Boldin somehow maintained possession on an 18-yard reception he appeared to almost pin against his right hip. The catch kept the 49ers’ hopes of avoiding overtime alive and gave Boldin 149 receiving yards on the day.
  • Kaepernick (and, by extension, Jim Harbaugh and Greg Roman) drove everyone nuts with a delay of game penalty. Then he threw one of his best passes of the season to …
  • … Patton, who solidified his role on the team for the playoffs — and perhaps years to come — with a 29-yard sideline grab that still boggles the mind. With Mario Manningham hitting IR, Patton needed to grow up fast. He became a bonafide NFL receiver in Arizona.

Niners Notes

– Scheduling notes: the 49ers will play the Packers on Saturday Sunday (that’s what I get for trusting the consensus on Twitter). No word what time as of now, but Weather.com says the high will be a balmy 26 degrees with a 10% chance of precipitation 18 degrees with 30% chance of snow.

– Kaepernick finished with some gorgeous numbers: 21-for-34, 310 yards, 2 touchdowns and no interceptions. Carson Palmer finished with 407 passing yards and only one interception, which is pretty good for Palmer.

– That INT was also pretty good for Bowman, who forced and recovered a fumble later. Bowman had nine solo tackles on the day, and along with his pick-6 against the Falcons has put together the kind of season (and finish) that could lead to some NFL Defensive Player of the Year consideration.

– Carlos Rogers suffered an apparent hamstring injury on a Larry Fitzgerald catch, which probably means we’ll see Eric Wright quite a bit on Saturday. The 49ers’ secondary has slipped up over the last couple weeks, which makes one wonder whether we’ll see the same mediocre pass coverage we saw last postseason.

– Joe Staley made a catch in this game.

– The 49ers will play the Packers for the fourth time in two seasons, and I think we can all be thankful for this: no more “What if the 49ers drafted Aaron Rodgers instead of Alex Smith?” silliness. Clay Matthews is “questionable” after undergoing thumb surgery on his re-fractured thumb, so hopefully we’ll avoid a week full of “Remember when Matthews hit Kaepernick out of bounds?” stories … although that’s probably asking too much.