CHARLOTTE, N.C. -- Russell Wilson threw for 339 yards and two touchdowns and Sebastian Janikowski kicked a 31-yard field goal as time expired to lift the Seattle Seahawks to a 30-27 come-from-behind victory over the Carolina Panthers on Sunday.

After Graham Gano missed a 52-yard field goal with 1:40 left in the game that would have given the Panthers the lead, Wilson moved around in the pocket until finding Tyler Lockett downfield for a 43-yard completion, setting up the winning kick.

The victory puts Seattle (6-5) firmly in the hunt for a wild-card spot in the NFC, while the Panthers (6-5) are reeling after losing three straight and having their 10-game home winning streak snapped.

Lockett finished with five catches for 107 yards and a touchdown, while David Moore had four receptions for 103 yards and a score.

The Panthers spoiled a record-setting performance from Christian McCaffrey, who had a franchise-record 239 yards from scrimmage. He had 17 carries for 125 yards and 11 catches for 114 yards, becoming the first Carolina player to surpass 100 yards in both receiving and rushing in the same game.

Cam Newton finished 25 of 30 for 256 yards with two touchdown passes and one interception in the end zone. He ran for 63 yards on eight carries.

Wilson tied the game with 3:26 remaining when he gambled on a fourth-and-3, lofting a 35-yard touchdown pass to David Moore, who beat Corn Elder in the corner of the end zone. Panthers starting cornerback Donte Jackson injured his quad on the first play from scrimmage, which proved to be an issue for Carolina.

Newton completed all 14 pass attempts in the first half for 159 yards, including a 7-yard touchdown pass to Curtis Samuel to give the Panthers a 13-10 lead at halftime. Eight of those passes went to McCaffrey, mostly on check-downs.

Chris Carson got the bulk of the carries for the Seahawks' No. 1-ranked rushing offense, carrying 16 times for 55 yards and a 1-yard touchdown. He had a remarkable 15-yard run on which he nailed the landing, and kept running, after getting flipped on a low tackle by Panthers safety Eric Reid.

NATIONAL ANTHEM

Reid continued his protest of racial and social injustice by kneeling during the national anthem. Seattle defensive tackle Quinton Jefferson and offensive tackle Duane Brown remained in the tunnel for the anthem as they have in previous weeks.

INJURIES

Seahawks: Doug Baldwin (groin) was a game-time decision, but played for Seattle and had five catches for 39 yards. Fullback Tre Madden left in the second half with a shoulder injury. 

Panthers: Jackson did not return after his quadriceps injury. Punt returner Damiere Byrd left the game with an arm injury in the first half and did not return. Wide receiver Devin Funchess (back) did not play.

UP NEXT

Seahawks: Host the 49ers next Sunday.

Panthers: At the Buccaneers next Sunday.