CHARLOTTE, N.C. – Over the course of the past two months, the Vikings accumulated eight victories, one after the other, through a carefully constructed formula of football that included a stout defense, an efficient offense that built long, turnover-free drives and relatively good health.

That got them to 10-2, and in a tie for the NFC’s top record, before Sunday’s game with the Carolina Panthers. And while the Vikings’ 31-24 loss at Bank of America Stadium might not have cost them all that much in terms of playoff positioning, it did serve as a reminder of what tight end Kyle Rudolph mentioned in the locker room after the game: This is a team built on diligence more than dominance.

“We’re not good enough just to roll the ball out there on offense,” Rudolph said. “All the uncharacteristic mistakes — the drops, the turnovers — we can’t have that and be successful.”

The Vikings’ third loss of the season Sunday was a defeat ultimately much of their own making. They opened the game with a Case Keenum interception — one of the three times the quarterback turned the ball over against Carolina. Their defense, which had allowed a league-low 17 runs of 10 yards or more before the game, gave up a 60-yard touchdown to Jonathan Stewart on the Panthers’ first drive.

Rudolph’s uncharacteristic drop wiped out a big gain in the first quarter, and the typically sure-handed Adam Thielen dropped a touchdown in the second quarter, before bobbling a pass two plays later that ultimately led officials to take away a TD when replays showed the ball moving as Thielen went to the ground. And in the fourth quarter, after a frantic Vikings comeback to erase an 11-point deficit and tie the score 24-24, Panthers quarterback Cam Newton raced 62 yards on a zone read play, beyond a missed tackle from Andrew Sendejo, to set up Stewart’s game-winning TD.

“Credit Carolina,” Vikings coach Mike Zimmer said. “We didn’t play good enough to win [Sunday]. We turned the ball over and give up big runs on defense. I give them credit, and we’ll get back to work.”

The loss ended the Vikings’ eight-game win streak, and put their bid to clinch the NFC North on hold for a week, after victories by the Detroit Lions and the Green Bay Packers moved those teams to 7-6.

It also put them a game behind the Philadelphia Eagles in the race for the NFC’s top seed, and meant the Vikings can’t win a common-opponents tiebreaker against the Eagles (though Philadelphia might have lost quarterback Carson Wentz to a season-ending knee injury against the Rams on Sunday).

The Vikings began the day without two of their five starting offensive linemen, when Pat Elflein, who had been questionable to play because of a shoulder injury, joined Mike Remmers (low back injury) among the team’s inactives. Left tackle Riley Reiff limped off in the third quarter before being carted to the locker room because of an ankle injury.

That forced the Vikings to shuffle their offensive line again at the end of the third quarter, moving Rashod Hill from right to left tackle and putting Jeremiah Sirles at right tackle after he’d started the day at left guard. Rookie Danny Isidora entered the game at left guard, meaning the Vikings had only one of their five regular starters — right guard Joe Berger — playing in his normal spot.

Keenum, who was sacked a season-high six times, completed 27 of his 44 passes behind the battered offensive line, ducking away from a Captain Munnerlyn sack on a corner blitz and finding space in the middle of the Panthers’ rush lanes to gain 40 yards on five scrambles. His first two turnovers, though, led to 10 Panthers points.

On the Vikings’ first play of the third quarter, Mario Addison beat Reiff with a speed rush and swatted the ball out of Keenum’s hand as he tried to throw downfield. The Panthers recovered the fumble as it shot forward, and reviews upheld the fumble call.

“The fumble, I tried to look downfield too long, took one extra hitch,” Keenum said. “These rushers are too good in this league. They have some great rushers at defensive end. It was a good play by him.”

With the Vikings down 24-13 in the fourth quarter, James Bradberry picked off a Keenum pass that Stefon Diggs deflected into the air.

But after a Vikings stop, Keenum found Thielen for a 52-yard touchdown strike and hit a two-point conversion pass to tight end Blake Bell that pulled the Vikings within three. When Sendejo intercepted a pass that ricocheted off Christian McCaffrey’s hands, it set up Kai Forbath’s game-tying 27-yard field goal with 3 minutes, 7 seconds.

For all the Vikings’ resilience, though, Newton was able to strike last.

He scooted through a hole off the left side of the Panthers’ line, eluding Sendejo’s tackle attempt for a 62-yard run that put the Panthers at the Vikings 8-yard line with just over two minutes to play. Stewart jumped over the goal line three plays later for his third score of the day to put Carolina up for good.

“He needed to do whatever it took to keep his team in the game,” Vikings cornerback Xavier Rhodes said of Newton. “He is the leader of the team and he needed to make plays. He made them.”

On a historic Thursday evening for Arike Ogunbowale, Muffet McGraw was just as pleased by the double-doubles she received from frontliners Brianna Turner and Jessica Shepard in No. 5 Notre Dame's 89-61 rout of Duke.