Peterson broke off a 60-yard touchdown run in the triumph as the Vikings sent the Steelers to their first 0-4 start since 1968.
Pittsburgh had a chance to tie the score in the closing seconds as Ben Roethlisberger drove Pittsburgh to the Minnesota 6-yard line, but he was sacked by Everson Griffen and fumbled.
Kevin Williams recovered the loose ball to seal the win for the Vikings (1-3).
Roethlisberger completed 36-of-51 pass attempts for 383 yards with a touchdown and interception for the Steelers.
Pittsburgh rookie Le'Veon Bell recorded two TD runs in his NFL debut.