Johnson had the pole and led for a race-best 168 laps overall but didn't grab the advantage for good until passing Chase runner-up Brad Keselowski with less than two laps left and eking out an 0.8-second victory.
The Texas result came a week after Johnson's win in Martinsville and boosted his lead over Keselowski in the Chase for the Sprint Cup to seven points.
Just two races remain on the slate as the pair contest for the title -- Phoenix (Nov. 11) and Homestead (Nov. 18).
Benedict Cumberbatch's dramatic reading of R. Kelly lyrics is just what you need
Couple mistakenly served bag of cash at McDonald's drive-thru