Harvick had led for 157 of 195 laps at Atlanta Motor Speedway but faded during a three-lap shootout to the finish, which was set up by a late-race caution for a multi-car crash.
Stenhouse took advantage of opportunity to claim the lead, with Keselowski moving into second place.
The defending Nationwide champ ended up crossing the finish line 0.16 seconds ahead of Keselowski, claiming his fourth victory of the season and the sixth of his career.
Harvick had to settle for third place, followed by current points leader Elliott Sadler and Justin Allgaier.
Texas principal bans speaking Spanish, stirs controversy
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'