Pole-sitter Johnson logged his fourth victory of the season after wresting the advantage away from Brad Keselowski with 14 laps to go.
He then fended off a challenge from Kyle Busch after a restart with five laps remaining, beating him to the finish line by 0.5 seconds.
The triumph gave the five-time Sprint Cup Series champion a two-point lead over Keselowski in the Chase standings with three races to go.
Interpol investigating stolen passports on missing flight
Susan Sarandon 'very excited' about daughter's pregnancy