Bob Donnan-USA TODAY Sports

D'Onta Foreman ran for 130 yards and a touchdown and the Carolina Panthers avenged a loss suffered 11 days earlier by defeating the visiting Atlanta Falcons 25-15 on a rainy Thursday night.

Panthers quarterback PJ Walker threw for 108 yards on 10-for-16 passing in a game that was close, but didn't quite have the drama of Atlanta's overtime victory in the first matchup between the NFC South teams on Oct. 30.

Eddy Pineiro, who missed two potential winning kicks in the game in Atlanta, booted four field goals for the Panthers (3-7). Foreman had 31 carries to spearhead a Carolina ground game that produced 232 yards on a whopping 47 carries.

Marcus Mariota threw for two touchdowns and rushed for a team-best 43 yards for the Falcons (4-6), who've lost two games in a row. He was 19-for-30 for 186 yards in the air with an interception.

Trailing 22-15, Atlanta got the ball back with 2:33 to play, but two sacks on the ensuing possession doomed the Falcons. The Panthers recorded five sacks.

The Panthers built a 13-0 lead over the game's first 28-plus minutes with Pineiro making field goals of 46 and 49 yards and a Laviska Shenault 41-yard scoring run in between.

Atlanta didn't score until Younghoe Koo's 33-yard field goal on the last play of the first half.

Still, it was a big contrast from the last game for Carolina, which trailed 35-0 at the break Sunday at Cincinnati in an eventual 42-21 loss.

The Falcons perked up in the third quarter, with Mariota's 7-yard pass to Drake London giving them their first touchdown and drawing them within four. Koo missed the extra-point kick.

Foreman's 12-yard touchdown run with 1:51 left in the third quarter also was followed by a missed extra-point kick.

Pineiro made amends with a 40-yard field goal for a 22-9 lead with 9:22 left in the game.

When Mariota threw 25 yards to KhaDarel Hodge for a touchdown with 2:56 to play, Koo's earlier missed extra point meant the Falcons would need a touchdown and extra point to tie the game.

Instead, the only scoring from that point was Pineiro's insurance 37-yard field goal for the game's final margin with 10 seconds to play.

More must-reads:

TODAY'S BEST
Astros scratch Justin Verlander as nightmare season continues
Oilers crush Panthers in Game 4, stay alive in Stanley Cup Final
Watch: Oilers chase goaltender Sergei Bobrovsky from Game 4
Dodgers ace leaves game against Royals due to triceps tightness
Watch: Rockies third baseman takes advantage of Pirates laziness to steal home
Pirates place young catcher on concussion IL
Watch: Game 4 of Stanley Cup Final gets off to chaotic start
Rockies 1B, former NL MVP diagnosed with internal oblique strain
NBA insider shares update on J.J. Redick's candidacy for Lakers HC job
Sam Mayer uses overtime restart to win Xfinity Series' return to Iowa
Nationals hurler DJ Herz makes impressive history in third career start
Free-agent DB Stephon Gilmore addresses playing futureĀ 
Report: Oilers open extension negotiations with veteran winger
Tiger Woods makes big admission about his U.S. Open future
Cubs P 'Mike' Imanaga continues hot start vs. Cardinals
Ravens All-Pro safety undergoes minor surgery
Kyle Larson takes pole for inaugural Cup Series race at Iowa
Maple Leafs make major change to coaching staff
Nationals sign OF/DH to minor league contract a day after release
Cubs place lefty starter on 15-day IL

Want more sports news?

Join the hundreds of thousands of fans who start their day with Yardbarker's Morning Bark, the best newsletter in sports.