Mark Ingram rushed for 85 yards and a touchdown for the Saints (9-3), who own the head-to-head tie-breaker over Carolina (8-4) with four games to go.
Drew Brees passed for 269 yards, including a 10-yard TD to Michael Thomas a few plays after a botched Panthers punt gave New Orleans the ball on the Carolina 31.
In the fourth quarter, a fumble by Panthers punt returner Kaelin Clay near midfield set up Wil Lutz's 31-yard field goal to give New Orleans a 31-14 lead.
Cam Newton passed for 183 yards and touchdowns of 21 yards to Christian McCaffrey and 24 yards to Devin Funchess. Newton also ran for 51 yards. Jonathan Stewart added a short TD run for Carolina, which had its four-game winning streak ended.
But the Panthers were unable to convert a crucial fourth-and-6 play deep in Saints territory in the fourth quarter. Newton connected with Funchess, who was stopped a yard short by cornerback Ken Crawley.
Kamara finished with 122 yards from scrimmage, capping his day with a serpentine, 22-yard gain on a third-and-10 screen pass with a little more than two minutes left.
Kamara has touchdowns in six straight games, the first time a Saints rookie has done so in the team's 51-year history. Kamara needs three touchdowns to break George Rogers' rookie franchise record of 13.
Panthers training staff examined Clay's right shoulder after his punt return in the first quarter, but he remained in the game. Stewart limped off the field, favoring his lower left leg, after a failed run on third-and-short in the second quarter. He returned on the next series. Panthers linebacker Shaq Thompson appeared to hurt his lower left leg late in the second quarter, but he also returned.
Saints rookie defensive end Trey Hendrickson limped off the field favoring his left leg, but returned later.
Panthers: Host Minnesota on Sunday.
Saints: Visit Atlanta on Thursday night.
Copyright 2018 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.