CHARLOTTE, N.C. — Vernon Davis' 1-yard touchdown catch, as ruled upon replay review, gave the 49ers a 13-10 halftime in their divisional playoff game against the Panthers.

Officials initially ruled that Davis was out of bounds, prompting 49ers coach Jim Harbaugh to charge some 20 yards onto the field in protest. Harbaugh drew a 15-yard, unsportsmanlike-conduct penalty that got assessed on the ensuing kickoff.

Down 13-6 with 3:41 remaining in the half, the 49ers marched 80 yards on 12 plays for Davis' go-ahead touchdown. Although Michael Crabtree and Anquan Boldin made key receptions on the drive, what really helped the 49ers' cause was a pass-interference penalty on Drayton Florence in the end zone, on a third-and-goal pass to Boldin.

The 49ers' other two scoring drives — a pair of first-quarter field goals -- also were boosted by Panthers' penalties, those of the unnecessary-roughness variety: Mike Mitchell sideswiped Vernon Davis on the opening drive, and Captain Munnerlyn head-butted Crabtree on the second scoring drive.

The Panthers went ahead 7-6 when Cam Newton hit Steve Smith in stride for a 31-yard touchdown catch against Tarell Brown, who never turned his head to spot the ball. Preceding that snap was a 24-yard punt return by former 49er Ted Ginn Jr.

Carolina's quick-strike touchdown soured a goal-line stand by the 49ers defense the last time they were on the field, when Ahmad Brooks stopped Newton on fourth-and-goal from the 1.

The 49ers' goal-line defense came through again in the second quarter, when the Panthers settled for a 24-yard field goal after reaching the 1. Ahmad Brooks' offside leap into the backfield didn't hurt the 49ers, and NaVorro Bowman followed it by tackling Mike Tolbert for a 1-yard loss third-and-goal.

  • Starting fullback Will Tukuafu injured his left knee while making a third-down reception on the opening drive. He's been ruled out.

  • Panthers safety Quintin Mikell hurt his right leg 47 seconds before halftime, covering Davis on an incomplete pass into the end zone.

    For more on the 49ers, see Cam Inman's Hot Read blog at blogs.mercurynews.com/49ers. Follow him on Twitter at twitter.com/CamInman.