Denny Hamlin overcame a pair of penalties to take his second win of the season in the NASCAR Cup series' first visit to Texas in 2019.
The Joe Gibbs Racing Toyota driver, who won the season-opening Daytona 500, won the second stage of the race and capitalised on a problem for team-mate and points leader Kyle Busch in the final stage to return to the front.
Hamlin's day was far from easy, though. During a green flag pitstop in the first stage he was judged to be too fast exiting the pits, while following his second stage win, a violation for a tyre leaving his pitbox further set him back.
However a combination of a final stage caution courtesy of Daniel Hemric, and a fast Toyota Camry allowed Hamlin to move back to the fore.
Clint Bowyer finished second behind Hamlin, with his Stewart-Haas team-mate Daniel Suarez crossing the line in third.
Suarez led nine laps, and had one of the fastest cars on track early on.
Erik Jones recovered from an early spin to lead 30 laps on his way to a fourth place finish, while polesitter Jimmie Johnson rounded out the top-five, leading a solid 61 laps and taking his best finish since May last year.
William Byron narrowly missed out on a first top-five finish, settling for sixth behind his Hendrick Motorsports team-mate. He beat the Stewart-Haas pairing of Aric Almirola, who was battling stomach flu, and Kevin Harvick.
Kurt Bush was ninth, one spot ahead of his brother, Kyle.
For much of the race it looked like Kyle Busch would win, completing a weekend sweep following his Truck series and Xfinity series wins.
The 2015 Cup series champion led a race-high 66 laps out of 334, but a pitstop on lap 279 following contact with the Turn 2 wall left him a lap down.
He eventually finished 10th, 11.6 seconds adrift of Hamlin, but on the lead lap.
While the race only had three regular cautions, it claimed a number of high-profile casualties.
Kyle Larson retired after 147 laps after contact with the wall left him with a terminal engine fire.
Penske's Ryan Blaney was also knocked out of the race due to an engine failure. He led 45 laps before his retirement, giving him the unenviable record of leading the most laps without a win this season.
His team-mate Brad Keselowski was sidelined with a transmission issue, but returned to the track to complete 279 laps and be classified 36th out of 39 starters.
The third Penske car of Joey Logano won the first stage of the event, but fell back to 17th and a lap down in the final order.
|1||Denny Hamlin||Joe Gibbs Racing||Toyota||334||3h16m11.s|
|2||Clint Bowyer||Stewart-Haas Racing||Ford||334||2.743s|
|3||Daniel Suarez||Stewart-Haas Racing||Ford||334||5.099s|
|4||Erik Jones||Joe Gibbs Racing||Toyota||334||5.321s|
|5||Jimmie Johnson||Hendrick Motorsports||Chevrolet||334||6.625s|
|6||William Byron||Hendrick Motorsports||Chevrolet||334||7.260s|
|7||Aric Almirola||Stewart-Haas Racing||Ford||334||9.377s|
|8||Kevin Harvick||Stewart-Haas Racing||Ford||334||9.638s|
|9||Kurt Busch||Chip Ganassi Racing||Chevrolet||334||9.773s|
|10||Kyle Busch||Joe Gibbs Racing||Toyota||334||11.616s|
|11||Ryan Newman||Roush Fenway Racing||Ford||334||13.272s|
|12||Martin Truex Jr.||Joe Gibbs Racing||Toyota||334||13.641s|
|13||Chase Elliott||Hendrick Motorsports||Chevrolet||334||17.223s|
|14||Austin Dillon||Richard Childress Racing||Chevrolet||334||17.456s|
|15||Michael McDowell||Front Row Motorsports||Ford||334||22.902s|
|16||Ricky Stenhouse Jr.||Roush Fenway Racing||Ford||333||1 Lap|
|17||Joey Logano||Team Penske||Ford||333||1 Lap|
|18||Alex Bowman||Hendrick Motorsports||Chevrolet||333||1 Lap|
|19||Paul Menard||Wood Brothers Racing||Ford||333||1 Lap|
|20||Chris Buescher||JTG Daugherty Racing||Chevrolet||333||1 Lap|
|21||Ty Dillon||Germain Racing||Chevrolet||332||2 Laps|
|22||Ryan Preece||JTG Daugherty Racing||Chevrolet||332||2 Laps|
|23||Darrell Wallace Jr.||Richard Petty Motorsports||Chevrolet||332||2 Laps|
|24||Matt Tifft||Front Row Motorsports||Ford||332||2 Laps|
|25||David Ragan||Front Row Motorsports||Ford||331||3 Laps|
|26||Matt DiBenedetto||Leavine Family Racing||Toyota||331||3 Laps|
|27||Parker Kligerman||Gaunt Brothers Racing||Toyota||330||4 Laps|
|28||Corey LaJoie||Go FAS Racing||Ford||330||4 Laps|
|29||Ross Chastain||Premium Motorsports||Chevrolet||329||5 Laps|
|30||Landon Cassill||StarCom Racing||Chevrolet||326||8 Laps|
|31||B.J. McLeod||Petty Ware Racing||Chevrolet||325||9 Laps|
|32||Garrett Smithley||Spire Motorsports||Chevrolet||325||9 Laps|
|33||Daniel Hemric||Richard Childress Racing||Chevrolet||324||10 Laps|
|34||Reed Sorenson||Premium Motorsports||Chevrolet||322||12 Laps|
|35||Bayley Currey||Rick Ware Racing||Ford||320||14 Laps|
|36||Brad Keselowski||Team Penske||Ford||279||55 Laps|
|37||Ryan Blaney||Team Penske||Ford||225||Overheating|
|38||Timmy Hill||MBM Motorsports||Toyota||168||Clutch|
|39||Kyle Larson||Chip Ganassi Racing||Chevrolet||147||Accident|
|7||Martin Truex Jr.||232|
|13||Ricky Stenhouse Jr.||183|
|28||Darrell Wallace Jr.||83|