MINNEAPOLIS — It was a (mostly) dominant performance.
The Vikings — who have shown they aren't for the faint of heart this season — rolled early and then hung on late for a 36-28 win over the Steelers on Thursday Night Football.
Minnesota looked like it would top Pittsburgh in a rout early on, but had to endure some nervous moments in the second half at U.S. Bank Stadium, especially late.
The Vikings led by eight when the Steelers took over at their own 4-yard line and 2 minutes and 16 seconds left in regulation.
Pittsburgh drove into Minnesota territory, gaining 13 a second-and-17 along the way, before eventually getting to the 12-yard line.
The Steelers final gasp was a throw into the end zone, but it was dropped as Vikings players, coaches and everyone else breathed a sigh of relief.
View game action photos between the Vikings and Steelers during the Thursday Night Football matchup at U.S. Bank Stadium.
All but one Vikings game this season has been decided by eight or fewer points. Minnesota tried to make sure early on that this one wouldn't be as nerve-wracking as the others.
It was worth a shot.
The Vikings were ready on a short week and simply dominated the first half, racing out to a 29-0 lead and outgaining the Steelers by the count of 300-66 in total yards.
Dalvin Cook and Justin Jefferson accounted for 220 of Minnesota's first-half yards, with Cook finding the end zone twice and Jefferson scoring once.
Defensively, the Vikings sacked Steelers quarterback Ben Roethlisberger four times in the first half alone.
The impressive outing snapped a two-game skid and lifted the Vikings to a 6-7 record to keep Minnesota alive in the NFC playoff race. The Vikings avoided a three-game losing streak for the third different time this season.
The Vikings will now get some rest before Week 15, as Minnesota plays at Chicago on Dec. 20 on Monday Night Football. The Vikings and Bears have not played each other yet this season.
Here are four other takeaways from Minnesota's Week 14 win:
1. Dalvin Cook gashes the Steelers
Did the Steelers game plan for Cook? Or Jefferson? It's tough to tell after the night that duo had in prime time.
Cook finished with 205 rushing yards and scored twice on 27 rush attempts. He finished 2 yards shy of setting a career-high with his rushing total.
Cook was listed as questionable coming into the game with a shoulder injury, but looked in All-Pro form after a historic first half.
He rushed for 153 yards (on 14 attempts) in the opening half, setting a season high in rushing yards and also setting a franchise record for the most first-half rushing yards in team history. Adrian Peterson previously held the record with 144.
Cook found the end zone on runs of 29 and 7 yards. He picked up yards in chunks Thursday night, rushing for gains of 20, 30, 16, 15 and 29 yards in the first half alone.
His 29-yard score was a thing of beauty as Luke Stocker, Blake Brandel and C.J. Ham all overloaded the right side of the formation to pave an easy path to the end zone.
Kudos to the Vikings recent new-look offensive line of, from left to right, Olisaemeka Udoh, Ezra Cleveland, Garrett Bradbury, Mason Cole and Brian O'Neill for opening up massive holes for the running game.
Overall, the Vikings ran for 176 yards in the opening half. Their final total of 242 rushing yards is their highest total this season.
Justin Jefferson also balled out in the Vikings #Primetime Purple uniforms, hauling in seven receptions for 79 yards and a score.
Minnesota got Jefferson involved early and often Thursday night, targeting him on the first two plays of the game. The 22-year-old could have had an even bigger night but just missed hauling in a pair of passes in the end zone in the first half.
2. Zimmer dials up the pressure
Vikings Head Coach Mike Zimmer was in vintage form Thursday night, going back to his vaunted Double-A gap scheme that he revolutionized during his career.
Zimmer — in his 15th career game against Roethlisberger — dialed up all sorts of blitzes that confused the longtime Steelers quarterback and his offensive line.
Minnesota recorded five total sacks on Roethlisberger, which tied a season best for the defense.
Eric Kendricks, Harrison Smith, Sheldon Richardson, Armon Watts and Michael Pierce each got to Roethlisberger in the pocket.
Kendricks set a career-best with his fifth sack of the season, and Pierce did the same with his third sack of the year.
Watts paid homage to teammate Everson Griffen with his signature "Sack Daddy" dance after Watts, who has 3.0 sacks in his past four games, brought down Roethlisberger.
Zimmer's ability to create havoc near the line of scrimmage led to a strong night on third downs, too, as Pittsburgh converted just four of its 13 third-down tries.
Bashaud Breeland also recorded his second interception of the season for the Vikings.
3. A wild second half
At one point, the Vikings led 29-0 and looked to possibly be in line for the biggest win during Zimmer's tenure in Minnesota. (That was a 49-17 victory over the Giants on Sunday Night Football in Week 16 of the 2015 season).
But a disastrous five-minute stretch allowed Pittsburgh to hang around and make it interesting.
Minnesota's defensive shutout ended with 2 minutes and 11 seconds left in the third quarter on a 3-yard touchdown pass.
Kirk Cousins was then intercepted on the Vikings first ensuing offensive play, which led to another Pittsburgh touchdown and a 29-14 Minnesota lead.
Minnesota promptly went three-and-out on offense before the Steelers scored again to make it 29-20. Pittsburgh's 2-point try was unsuccessful.
K.J. Osborn then eased the nerves with a 62-yard touchdown catch to make it 36-20, and it later appeared the Vikings had the game in hand with a 36-20 lead and the ball.
But Cousins was picked off again by Ahkello Witherspoon, and the 41-yard return set up another Roethlisberger touchdown pass. The ensuing 2-point conversion made it 36-28.
4. Greg Joseph bounces back
It was a rough start for Greg Joseph.
The Vikings kicker was wide left on a 53-yard field goal on Minnesota's opening drive, and then followed that up with a missed extra point.
Joseph's missed field goal was just his second misfire from 50-plus yards.
But Joseph rebounded for the rest of the game as he sent his final six kicks through the uprights.
Joseph made a trio of field goals — from 38, 42 and 25 yards out — and also added a trio of extra points.
He is now 27-for-32 on field goals and 28-for-33 on extra points this season.
Vikings punter Jordan Berry was used sparingly Thursday night with just three punts, but his final one pinned the Steelers at their own 4-yard line.