ATLANTA -- Quarterback Matt Ryan took personal responsibility for solving the Atlanta Falcons' red-zone problems. The veteran threw for two touchdowns and ran for two more -- all within the red zone -- in helping Atlanta beat the Carolina Panthers 31-24 on Sunday at Mercedes-Benz Stadium.
Ryan completed 22 of 27 passes for 263 yards and two touchdowns. He was not sacked and threw one interception. He ran four times for 18 yards and a career-best two touchdowns.
"This week's preparation in practice, we were (angry) as a team that we didn't perform like we thought we could," coach Dan Quinn said. "That didn't affect their preparation. It didn't affect their mindset. We knew the work that we're doing is right and we knew the process we were going through was right, so we were going to stay committed to that."
Ryan's second touchdown run gave the Falcons a two-touchdown lead. Safety Ricardo Allen intercepted a pass that bounced off the body of running back C.J. Anderson. That led to a 75-yard drive that was completed when Ryan scrambled for an 8-yard touchdown, diving in for the touchdown.
"I felt like I was past the first down," Ryan said. "But I wasn't quite sure, and I didn't want to slide in that situation or go down because you don't know where you're going to get marked, and so I felt like something was below my feet and figured I'd go up and try and protect the ball as best I could, and I guess it was a good decision."
Carolina still made it a game. Cam Newton completed a 51-yard touchdown pass to D.J. Moore with 2:30 left and the Panthers' defense held Atlanta to a three-and-out to force a punt. That gave Carolina one final chance and ended only when C.J. Moore couldn't fight through a double team of Robert Alford and De'Vondre Campbell in the end zone as time expired.
Newton completed 32 of 45 for 335 yards and three touchdowns. He threw one interception and was sacked twice. He had five rushes for 42 yards.
Atlanta was without All-Pro tailback Devonta Freeman, but still managed to rush for 170 yards. Tevin Coleman carried 16 times for 107 yards and became the first opponent run for 100 yards against the Panthers in 21 games.
Quinn said, "I thought (Coleman) certainly ran hard and this is an excellent front seven. We knew there would be some runs that would be for ones and zeros, but if we kept hitting and kept going, we thought we'd have our opportunities."
"We fought," Atlanta safety Ricardo Allen said. "The offense did a great job today. They kept the clock going, were real good in the red zone, so that kept the game real good for us on defense and we were able to predict what they were doing."
The teams traded field goals in the first quarter. Carolina's Grant Gano was good from 54 and Atlanta's Matt Bryant connected from 44 yards.
Newton never left the game and enthusiastically led his team to a touchdown when he found Jarius Wright open on the goal line between two safeties for a 6-yard score.
Atlanta responded by scoring two touchdowns on its next two possessions. Ryan threw to rookie Calvin Ridley for an 11-yard score and later found Austin Hooper for an 8-yard touchdown, giving the Falcons a 17-10 lead at the half.
The Falcons scored again to open the third quarter. Thanks to a pair of long runs by rookie Ito Smith, Atlanta drove 85 yards and punched it in when Ryan snuck over the right guard from the 1.
Carolina got back in the game with an 11-play drive, aided by a pass interference penalty on Robert Alford, that covered 80 yards. Newton fired a 3-yard touchdown pass to Torrey Smith with 11:27 remaining.
"We did good enough to win the game," Newton said. "When you do that, you give yourself the same opportunity to lose as well. We've just got to be a little bit better starting with myself. 'My faults, my bads, next play' mentality. We've just got to hone in and focus just a little bit more. I'm very excited about the flashes that we showed. But at the end of the day coming into a hostile environment, every single play counts especially a division game like this."
--More Atlanta Falcons coverage by Stan Awtry on