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.
Video of Victoria’s Secret models trying to 'twerk' hits Instagram
Wisconsin business offering 'therapeutic cuddling' forced to close