CHARLOTTE, N.C. — Colin Kaepernick and the San Francisco 49ers are headed to the NFC championship game once again — to face a familiar opponent in a place where they've struggled.
Kaepernick threw one touchdown pass and ran for another score as the 49ers shut down Cam Newton and defeated the Carolina Panthers 23-10 on Sunday to advance to the NFC title 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 will visit Seattle next Sunday looking for a return trip to the Super Bowl.
San Francisco split two games with the Seahawks this season. The 49ers lost 29-3 at Seattle in September and were beaten 42-13 at CenturyLink Field in December 2012.
Kaepernick had all sorts of trouble at Seattle a few months ago. The 49ers were missing receiver Michael Crabtree in that lopsided loss.
"We're different team than we were the first time we played them up there. We have a lot of key playmakers back and we're ready to go," Kaepernick said.
The 49ers held Newton in check, intercepting him twice and sacking him five times while stopping the Panthers (12-5) twice on the 1-yard line in the first half.
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.
Kaepernick was held to 91 yards passing and 16 yards rushing in the first meeting with Carolina, a 10-9 loss at Candlestick Park.
But he played efficient football on Sunday.
"We had to get settled down. We came out, they did some unorthodox things against us. We settled down, we got into our rhythm, we started making plays," Kaepernick said.
San Francisco led 13-10 at the half, and Kaepernick scored midway through in the third quarter on a 4-yard touchdown run off a read option. Kaepernick then imitated Newton's Superman celebration by pretending to rip open his shirt.
Newton and the Panthers offense had no answer, failing to score in the second half.
The game was not without its share of disputes.
The 49ers took a 13-10 lead into the locker room after Vernon Davis caught a 1-yard touchdown pass in the back of the end zone from Kaepernick 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, prompting 49ers coach Jim Harbaugh to come racing on to the field to dispute the call, drawing a 15-yard penalty for unsportsmanlike conduct. But 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 5-yard dead ball penalty.
The touchdown was the first time in 18 possessions for the 49ers against the Panthers this season.
Carolina spotted San Francisco a 6-0 lead with two defensive penalties — an unnecessary roughness on safety Mike Mitchell and a headbutt on cornerback Captain Munnerlyn — leading to field goals.
Wide receiver Steve Smith, who was questionable all week with a sprained knee ligament, gave Carolina a 7-6 lead with a 31-yard touchdown reception in the second quarter. Smith was well covered, but turned just in time to see the ball coming over cornerback Tarell Brown's shoulder for his 10th touchdown in nine postseason games.
Carolina led 10-6 before Davis' touchdown catch put the 49ers ahead for good.
It's the second time since 2008 the Panthers have lost at home in the divisional playoffs after winning the NFC South and claiming a first-round bye with the No. 2 seed.
The win set up the third game of the season between Seattle and San Francisco. The Seahawks romped at home 29-3 on Sept. 15, then the 49ers won at home 19-17 on Dec. 8.