Tony Romo was 90 yards from the end zone, trailing one-win Minnesota by a field goal with another late-game interception fresh on his mind.
The Dallas quarterback found a way to spoil the homecoming for Adrian Peterson and Christian Ponder.
Romo threw for 337 yards and two touchdowns, including the go-ahead score to Dwayne Harris with 35 seconds left to answer a touchdown by Peterson that put Minnesota in front, and the Cowboys beat the Vikings 27-23 Sunday.
"Just really a great job by Tony," said tight end Jason Witten, who had two catches on the winning drive and led the Cowboys with eight grabs for 102 yards. "I mean, as good as I've seen him in a long time as far as just kind of directing traffic and finding throws and staying poised with his decision-making and allowing us to get first downs."
Romo's first attempt to answer Peterson's go-ahead score ended with an interception on a great play along the sideline by A.J. Jefferson — and was a reminder of the late pick Romo threw in Dallas' only home loss this year.
Dallas didn't get another chance four weeks ago, when Peyton Manning and the Denver Broncos ran out the clock and won 51-48 on a field goal on the final play.
But the Vikings couldn't convert this late Romo mistake into points and gave him the ball back at the Dallas 10 with 2:44 remaining.
Dez Bryant had a 34-yard catch that put Dallas in position for at least a tying field goal, which was possible because Blair Walsh missed wide right on the extra point after Peterson's touchdown. But Romo kept pushing, eventually finding Harris, who cut in front of Marcus Sherels and dived over the goal line.
Romo was 7 of 9 for all 90 yards on the winning drive, which handed the Vikings (1-7) their fourth straight loss.
"I think if you pull back and you really look at Tony Romo's career, people want to talk about some of these plays where things didn't work out," Cowboys coach Jason Garrett said. "But if you really look at his body of work and you look at it objectively, he's done this kind of stuff a lot."
Five things to consider after the Cowboys (5-4) bounced back from a devastating loss at Detroit and avoided what probably would have been a more damaging defeat:
UNHAPPY HOMECOMING: Peterson, the East Texas kid raised on the Cowboys, was playing in their $1.2 billion stadium for the first time and rushed for 140 yards. He got the go-ahead drive in the fourth quarter going with a 52-yard run, then went the final 11 on fourth-and-1. He easily got the first down and carried safety Jeff Heath the last few yards, with Heath trying to strip the ball as Peterson crossed the goal line.
Ponder threw for a touchdown and ran for another score against his hometown team. "It was a good experience to be here and close to home, play at this stadium and have family come watch," said Ponder, who played high school football in the Dallas suburb of Colleyville. "But it's a tough experience when we lose."
SUDDEN SWING: The Cowboys scored touchdowns 10 seconds apart early in the third quarter to take a 20-10 lead. Romo had consecutive 26-yard completions to Witten, the second for a touchdown and a 13-10 lead. A week after Cordarrelle Patterson set an NFL record with a 109-yard kickoff return for a touchdown, he fumbled a short kickoff out of bounds at the Minnesota 5. On the next play, George Selvie knocked the ball out of Ponder's hand in the end zone, and Nick Hayden recovered.
QB SITUATION: Ponder answered the quick Dallas touchdowns by going 4 for 4 for 74 yards on a drive that ended with a 31-yard touchdown to Kyle Rudolph, who bounced off Barry Church at the 6 and fought his way into the end zone. Ponder was 25 of 37 after being named starter on Friday, and with Josh Freeman inactive because of a concussion. He also led a pair of 11-play scoring drives in the first half, including his 6-yard scoring scramble. "As we speak, I don't see why we'd make a change, but sometimes after ballgames, we make emotional decisions," said Vikings coach Leslie Frazier, whose team is at home against Washington on Thursday night.
MORE DEZ DRAMA: The Cowboys were in position to extend a 20-17 lead when Bryant took his team out of field goal range with unsportsmanlike conduct for taking off his helmet and arguing with officials as a pass interference penalty against him was about to be announced. "I wasn't angry at the ref," said Bryant, who made headlines last week with a pair of sideline outbursts. "I know now not to take my helmet off."
NO NEED TO RUN: DeMarco Murray returned for Dallas after missing two games with a knee injury. He went 27 yards on his second carry but finished with just four carries for 31 yards and the Cowboys had a franchise-low nine attempts. "You'd certainly like to have more balance than that, obviously," Garrett said. "I do think with both of those situations at the end of the ballgame, sometimes it gets skewed."
AP NFL website: www.pro32.ap.org
Follow Schuyler Dixon on Twitter at https://twitter.com/apschuyler