CHARLOTTE, N.C. -- Colin Kaepernick threw one touchdown pass and ran for another score as the San Francisco 49ers defeated the Carolina Panthers 23-10 on Sunday to advance to the NFC Championship Game for the third straight season.
Kaepernick completed 15 of 28 passes for 196 yards, avenging his worst statistical performance of the season two months ago against the Panthers.
Anquan Boldin had eight catches for 136 yards and Frank Gore ran for 84 yards on 17 carries for the 49ers (14-4), who'll travel to Seattle next Sunday looking for a return trip to the Super Bowl. San Francisco split two games with the Seahawks this season.
The 49ers held Cam Newton in check, intercepting him twice and sacking him four times while stopping the Panthers (12-5) twice on a 1-yard line. It was a rough playoff debut for the former Heisman Trophy winner.
Linebacker Ahmad Brooks stopped Newton on a fourth-down sneak early in the second. Later, Brooks vaulted over the line and past Newton -- he was called for offsides, but the 49ers showed the Panthers it wouldn't be easy.
Carolina's vaunted pass rush, which led the league with 60 sacks, got to Kaepernick only once, and the defense was flagged for three costly penalties leading to 13 points.
The 49ers benefited from a missed call in which officials failed to recognize they had 12 men in the huddle before a go-ahead TD pass from Kaepernick to Vernon Davis at end of the first half. Had the officials seen it, there would've be a 5-yard penalty.
Carolina won 10-9 in November in San Francisco, yet once again had trouble scoring.
Kaepernick extended San Francisco's lead to 20-10 early in the third quarter on a 4-yard touchdown run off a read option, then imitated Newton's Superman-style celebration by pretending to rip open his shirt.
The 49ers took a 13-10 lead into the locker room after Davis hauled in a 1-yard touchdown in the back of the end zone with 5 seconds left in the first half.
After a pass interference on cornerback Drayton Florence set the 49ers up with a first and goal at the 1, Davis was initially ruled out of the end zone. That prompted 49ers coach Jim Harbaugh to come racing on to the field to dispute the call, drawing a 15-yard penalty for unsportsmanlike conduct.
After reviewing the play, officials ruled Davis dragged his left foot and overturned the call on the field.
But that wasn't all.
Television replays showed the 49ers had 12 men in the huddle before the play, which should have resulted in a penalty.
It turned out to be a huge play. Had the play stood the penalty on Harbaugh would have backed the 49ers up the 16 for a third-down play. As it was, the penalty was assessed on the kickoff and didn't matter.
The touchdown was the first time in 18 possessions the 49ers scored a touchdown against the Panthers this season.
Two other costly 15-yard personal fouls on Carolina's defense led to a pair of early San Francisco field goals.
The 49ers were 2 of 13 on third downs that one-point loss to the Panthers on Nov. 10, but converted three on their opening drive -- the big one coming on an unnecessary roughness penalty on safety Mike Mitchell for a late hit on Davis after an incompletion. Phil Dawson made a 49-yard field goal for a 3-0 lead.
After Newton threw an interception, the 49ers took advantage of cornerback Captain Munnerlyn getting flagged for head-butting Michael Crabtree, leading to a 33-yard field goal by Dawson.
Carolina reached the San Francisco 1 on its next drive, but Newton was stuffed on fourth and goal.
Luke Kuechly and the defense kept the 49ers pinned deep and forced a punt which Ted Ginn Jr. returned to the San Francisco 31. On the next play, Newton connected with Steve Smith on a go route with a perfect pitch-and-catch to give Carolina a 7-6 lead.
Smith, who was questionable all week with a sprained knee ligament, turned just in time to see the ball coming over cornerback Tarell Brown's shoulder for his 10th touchdown in nine postseason games.
The Panthers made it 10-6 a 24-yard field goal by Graham Gano on their next possession after the 49ers stuffed All-Pro fullback Mike Tolbert on a third and goal at the 1.
The win set up the third game of the season between Seattle and San Francisco. The Seahawks won at home 29-3 on Sept. 15, then the 49ers won at home 19-17 on Dec. 8.