View game action photos between the Vikings and Steelers during the Thursday Night Football matchup at U.S. Bank Stadium.
MINNEAPOLIS — Three Vikings defenders — Anthony Barr, Harrison Smith and Xavier Woods — converged in the middle of the end zone.
Smith, coming from the backside of the play reached his right arm around rookie tight end Pat Freiermuth and knocked the ball away on the game's final play.
U.S. Bank Stadium exhaled collectively, concluding a 36-28 Vikings victory.
Smith took off his helmet after Minnesota's 12th of 13 games this year had been decided by one score and rolled it across the end zone.
It looked like a bowling ball on a potholed freeway, bouncing a little.
The visual resonates with a bumpy Vikings season.
A first half that was smooth sailing for the Vikings and stormy for the Steelers tightened because of turnovers in the second half.
Minnesota outgained Pittsburgh 300 to 66, nearly by a 5-to-1 ratio, in the first half behind an incredible return to the lineup by Dalvin Cook.
Cook rushed 14 times for 153 yards and two scores, setting a team record for rushing yards in a first half. He moved past Ted Brown for fifth-place on the Vikings career rushing yards leaderboard and finished with 205 yards on 27 carries.
He's the only player to rush for more than 200 in a game this season and ended a yard shy of his personal best.
It was key for a Vikings team that was famine and feast in the passing game without Adam Thielen.
K.J. Osborn stepped up in a big way with nine catches for 83 yards including a 62-yard touchdown.
After scoring the game's first 29, Minnesota allowed the next 20 points.
Osborn pushed Minnesota's lead to 36-20.
Pittsburgh cut the lead in half with a 15-yard pass to Freiermuth and a 2-point conversion with 4:14 remaining.
The Vikings were unable to run out the clock and punted the ball — a beauty by former Steeler Jordan Berry — that placed the ball at the Pittsburgh 4 with 2:16 remaining.
The Steelers drove all the way to the Minnesota 12 with 0:02 remaining.
Minnesota got the stop that eluded it on Sunday with the same amount left on the clock to improve to 6-7. Pittsburgh fell to 6-6-1.
The Vikings sacked Roethlisberger four times in the first half but just once in the second half when Pittsburgh rallied with 309 yards and limited Minnesota to 158.
Q1, 3:31 remaining
Vikings 6, Steelers 0
Justin Jefferson catches a 14-yard pass from Kirk Cousins (Greg Joseph misses PAT wide right) [5 plays, 61 yards, 2:01 time of possession]
Interesting intersection: Jefferson and Tyler Conklin ran deep crossing routes on the score.
Q2, 14:43 remaining
Vikings 9, Steelers 0
Joseph kicks a 38-yard field goal [7 plays, 37 yards, 2:02 time of possession]
J.J. & The Chef again: Jefferson started the drive with a gain of 18 to plays before Dalvin Cook rushed for 16.
Q2, 9:55 remaining
Vikings 16, Steelers 0
Cook rushes for 29 yards (Joseph kicks PAT) [5 plays, 78 yards, 3:06 time of possession]
Crash and sprint out: Cook took advantage of Pittsburgh overplaying movement toward the middle of the formation. He sprinted before hitting cruise control and made it to the end zone untouched.
Q2, 9:55 remaining
Vikings 23, Steelers 0
Cook rushes for 7 yards (Joseph kicks PAT) [12 plays, 60 yards, 5:19 time of possession]
Pull the guard: The Vikings pulled left guard Ezra Cleveland to the right, enabling the second-year pro to make the key block on cornerback Ahkello Witherspoon.
Q3, 9:36 remaining
Vikings 26, Steelers 0
Joseph kicks a 42-yard field goal [7 plays, 10 yards, 2:49 time of possession]
Q3, 6:15 remaining
Vikings 29, Steelers 0
Joseph kicks a 25-yard field goal [6 plays, 23 yards, 2:07 time of possession]
Points from great field position: The drive started at the Pittsburgh 30-yard line after an 18-yard return on an interception by Bashaud Breeland but stalled at the Pittsburgh 4 when Cook was tackled for a 3-yard loss by Montravius Adams.
Q3, 2:11 remaining
Vikings 29, Steelers 7
Najee Harris catches a 3-yard pass from Ben Roethlisberger (Chris Boswell kicks PAT) [10 plays, 75 yards, 4:04 time of possession.
Drive extenders: Harris kept the chains moving with a hard-fought gain of 3 on third-and-2, and the Vikings did the Steelers a favor when Kris Boyd was flagged for taunting after a tackle for a 2-yard loss. Instead of third-and-12 at the Minnesota 37, Pittsburgh received a first-and-10 at the 22. Harris scored three plays later.
Q4, 14:49 remaining
Vikings 29, Steelers 14
Harris rushes for 1 yard (Boswell kicks PAT) [7 plays, 42 yards, 2:14 time of possession]
TD off turnover: Pittsburgh took advantage of the short field and a dose of momentum after Ahkello Witherspoon intercepted a pass intended for Jefferson. Witherspoon caught a ball that was first tipped by linebacker Devin Bush before it bounced off Jefferson.
Q4, 12:11 remaining
Vikings 29, Steelers 20
James Washington catches a 30-yard pass from Roethlisberger (2-point conversion pass fails) [3 plays, 69 yards, 1:06 time of possession]
Deep heaves: Roethlisberger set up the deep touchdown with a 37-yard completion to Diontae Johnson
Q4, 10:51 remaining
Vikings 36, Steelers 20
K.J. Osborn catches a 64-yard pass from Cousins (Joseph kicks PAT) [3 plays, 75 yards, 1:20 time of possession]
Deeper heave: The Vikings quickly answered by providing strong protection to allow Cousins to put the ball on the money to Osborn, who caught the ball at the Pittsburgh 16.
Q4, 4:14 remaining
Vikings 36, Steelers 28
Pat Freiermuth catches a 15-yard pass from Roethlisberger (2-point conversion pass from Roethlisberger to Johnson succeeds) [2 plays, 21 yards, 0:44 time of possession]
A two-fer: The Steelers followed a Witherspoon interception with a touchdown for the second time of the night. Witherspoon returned the second pass he picked 41 yards.