Dalvin Cook rushed for 205 yards and two touchdowns in his faster-than-expected return from a shoulder injury, and the Minnesota Vikings held on to beat the Pittsburgh Steelers 36-28 by forcing an incomplete pass in the end zone on the final play Thursday night.

Ben Roethlisberger's throw to Pat Freiermuth was on target, but Anthony Barr and Harrison Smith sandwiched the rookie tight end at just the right moment to dislodge the ball and give the Vikings (6-7) a critical victory after they nearly squandered a 29-0 late-third-quarter lead.

All but one of Minnesota's games this year have been decided by eight points or less.

CLICK HERE FOR MORE SPORTS COVERAGE ON foxnews.1eye.us

Roethlisberger had touchdown passes to Najee Harris, James Washington and Freiermuth in the second half, and Harris ran for a score, too, as the Steelers (6-6-1) recovered from their abysmal start. The Vikings had a 300-66 advantage in total yards in the first half, but Ahkello Witherspoon intercepted Kirk Cousins twice after halftime to fuel the rally.

Just as vital as all the turf he tore up on the ground was the 17-yard catch Cook made on a seam route on third-and-9 from the Minnesota 26 with 2:38 left. That forced the Steelers to use all their timeouts, leaving Roethlisberger 96 yards and 2:16 to go after Jordan Berry pinned a punt deep against his former team.

Roethlisberger hit Chase Claypool for 48 yards while Bashaud Breeland was committing pass interference to reach midfield. Claypool pulled in a fourth-and-2 slant to reach the Minnesota 34. Diontae Johnson set up the last play from the 12 by taking a crossing route 12 yards out of bounds, but Roethlisberger and the Steelers, who failed on a 2-point conversion try earlier in the fourth quarter, wound up just short.

INSTANT COOKING

Just 11 days after Cook dislocated his shoulder, keeping him out of last week’s loss at previously winless Detroit, he lined up in the backfield and enjoyed the most running room he’s seen all season. Cook set a franchise record with 153 rushing yards in the first half, and he needed only 14 carries to do it.

The Vikings trampled the Steelers with their zone blocking scheme, creating gaping holes for Cook to burst through and minimizing the contact with his still-healing shoulder. The Vikings averaged more than 10 yards per play in the first quarter.

JUST WIDE

The only speed bump for the Vikings came when Greg Joseph pulled a 53-yard field goal left and sent his first extra point try wide right. Chris Boswell also hooked a 49-yard attempt left, just his second missed field goal of the season for the Steelers to end a streak of 20 straight makes. This was the first NFL game since at least 1991, as far back as Sportradar data goes for this research, with two missed field goals and a missed extra point in the first quarter.

INJURY REPORT

Steelers: CB Joe Haden (foot) missed his fourth straight game. ... John Leglue made his first NFL start, filling in at left guard for B.J. Finney (back). Leglue became the fourth starter at LG this year, with Kevin Dotson and J.C. Hassenauer on injured reserve. ... OLB Alex Highsmith (knee) was hurt in the third quarter and did not return.

Vikings: LT Christian Darrisaw (ankle) sat out for the second straight game. Oli Udoh took Darrisaw's place, and Mason Cole played right guard for Udoh. ... Backup LB Ryan Connelly appeared to seriously injure his knee covering the second half kickoff.

UP NEXT

The Steelers host Tennessee on Dec. 19. They're 4-0-1 in their last five home games.

The Vikings visit Chicago on Dec. 20, giving them 10 full days between games.