Andy Dalton returned from a two-game absence to throw three touchdown passes, hitting Dalton Schultz for a 2-yard score with 1:37 left to lift Dallas over the Minnesota Vikings 31-28 on Sunday to stop the Cowboys' four-game losing streak.

Dalton went 22 for 32 for 203 yards and one interception after fill-ins Ben DiNucci and Garrett Gilbert started the previous two games. After missing games to a concussion and COVID-19, Dalton directed an 11-play, 66-yard drive down the stretch that was extended with a fourth-and-6 completion to Amari Cooper at the 19.

CLICK HERE FOR MORE SPORTS COVERAGE ON FOXNEWS.COM

Kris Boyd stepped in front of Schultz and nearly picked off a first-and-goal pass in the end zone, but Dalton delivered to his wide-open tight end two plays later. That snapped the Vikings' three-game winning streak and kept the Cowboys (3-7) alive and well in the lackluster NFC East. They're in a three-way tie for second place behind Philadelphia (3-6-1).

Dodging pressure all afternoon, Kirk Cousins completed 22 of 30 passes for 314 yards and three touchdowns to punctuate possessions of 75, 81 and 85 yards to start the second half after the Vikings trailed 16-7 following a first half marked by two lost fumbles and six penalties for 60 yards.

Adam Thielen caught the first two touchdowns, the first one with a falling-down, one-handed grab in the back corner of the end zone while being held by Cowboys cornerback Anthony Brown.

Justin Jefferson had the third score, a 39-yarder that gave the Vikings the lead back after Tony Pollard’s 42-yard touchdown run.

When it counted the most, the Vikings (4-6) stalled out on their final two possessions while Cousins went 2 for 7. His fourth-and-6 throw to Thielen from the 29 fell incomplete with 1:18 left.

Ezekiel Elliott reached his first 100-yard rushing game of the season and caught a TD pass. CeeDee Lamb made a flat-on-his-back touchdown catch in the second quarter for the Cowboys.

NFL leader Dalvin Cook had 115 rushing yards and a touchdown plus 45 receiving yards for the Vikings, who remained two games out of the final wild-card spot and in ninth place in the NFC.

CLICK HERE TO GET THE FOX NEWS APP

NEVER DULL

Minnesota's special teams have been in disarray this month, with two blocked punts by Detroit and a kickoff return touchdown allowed to Chicago. Long snapper Austin Cutting, whose low delivery in the last game led to a failed extra point, was replaced by Andrew DePaola.

Vikings mistakes persisted. Punt returner K.J. Osborn's fumble was recovered early in the first quarter, but punter Britton Colquitt's 23-yard pass to Boyd for a first down on a second-quarter fake was wiped out by Boyd's illegal shift penalty. When they lined up again, Boyd was called for an illegal block above the waist, a rarity for the kicking team.

On the brighter side, Eric Wilson blocked an extra point in the first quarter.

THE RED RIFLE

Dalton returned behind a reshuffled offensive line, with Joe Looney replacing the injured Tyler Biadisz at center, right guard Zack Martin taking over at right tackle for rookie Terence Steele and Connor McGovern filling Martin's spot.

The offense produced twice as many touchdowns at Minnesota as it had in the four previous games without star quarterback Dak Prescott, but there were still questions.

Instead of feeding Elliott, the Cowboys went big late in the second quarter from the Vikings 38. Dalton threw deep for Michael Gallup and incomplete on third-and-1 and wide of Cedrick Wilson on the next play to give the ball up on downs.

INJURY REPORT

Cowboys: Brown (ribs) left the game in the fourth quarter. ... With rookie CB Trevon Diggs (foot) on injured reserve, CB Chidobe Awuzie (groin) conveniently returned to the starting lineup from a seven-game absence.

Vikings: Brett Jones replaced RG Ezra Cleveland (ankle), becoming the fourth different starter at that position this season. ... TE Irv Smith Jr. (groin, one game) and CB Cameron Dantzler (concussion, two games) each returned from absences after being listed as questionable.

UP NEXT

Cowboys: Host Washington on Thursday in their annual Thanksgiving Day game.

Vikings: Host Carolina on Nov. 29.