The 35-year-old converted two headers in seven second-half minutes to overturn Zlatan Ibrahimovic's opener for Sweden and send the Ukrainian capital into rapture in the country's first European Championship match.
Shevchenko nearly failed to make Oleg Blokhin's tournament squad, but earned a starting berth and repaid his coach's faith with a finishing masterclass to take his international record to 48 goals from 109 games.
Ukraine go top of Group D after the opening round of matches, following England's draw against France earlier on Monday.
The players emerged to a cauldron of noise, with both sets of fans clad in yellow. Yet the action on the pitch took some time to get going - as did Shevchenko.
The Ukrainian captain had a great chance to open the scoring on 23 minutes, but dragged his shot wide of the far post.
The co-hosts grew in confidence, and the impressive Andriy Voronin tested Andreas Isaksson with a swerving effort from long range, before superb blocks denied Shevchenko and Andriy Yarmolenko.
Ibrahimovic, operating in a deep role behind main striker Markus Rosenberg, spurned a great chance on 39 minutes, when he escaped his marker but sent his free header wide off the far post.
Rosenberg had the first big chance of the second half after Sebastian Larsson dispossessed Serhiy Nazarenko, but Taras Mikhalik threw himself bravely in front of the ball.
On 52 minutes, Ibrahimovic put Sweden in front, ghosting in front of his marker to convert Kim Kallstrom's low cross from close range - Ukraine felt aggrieved as Yevhen Selin lay injured during the build-up, but referee Cuneyt Cakir rightly played on.
Then came the Sheva show. On 55 minutes, he showed his old turn of pace to nip in front of Olof Mellberg and head a superb Yarmolenko cross past Isaksson.
But he had not finished, and doubled his tally by darting to the near post to meet Yevhen Konoplyanka's corner, glancing the ball into the net as 70,000 locals lifted the roof off the stadium.
Sweden had their chances, but could not conjure an equaliser. Ibrahimovic saw a shot parried, before teeing up Johan Elmander with a gorgeous looping flick, only to see the substitute volley high and wide.
Mellberg nearly had the final say in the last minute of added time, but lifted his shot onto the top of the net.