Denny Hamlin overcame two pit road penalties to win the O'Reilly Auto Parts 500 on Sunday at Texas Motor Speedway -- his second win of the 2019 season. It's the 33rd career trip to Victory Lane for the Daytona 500 and now two-time Texas winner.

Hamlin battled for position all race long. He missed pit road and got penalized for speeding in Stage 1, then suffered an uncontrolled tire penalty entering the Final Stage. Nevertheless, Hamlin's crew chief Chris Gabehart worked up the winning strategy to get the No. 11 back to Victory Lane. 

Jimmie Johnson dominated most of Stage 1, leading 60 laps after starting on the pole. However, it was Joey Logano who took the green-and-white checkered ahead of the No. 48. Logano took track position from Johnson after green flag pit stops and recycled to the lead at the very end to earn his second stage win of the season.

Hamlin won Stage 2 on strategy, after taking just fuel under yellow with 12 laps to go and holding off Kyle Busch, who led 24 laps in the stage. Chase Elliott also saw time in the front during Stage 2, leading 35 laps. It was the first mid-race stage win of the season for Hamlin.

O'Reilly Auto Parts 500 results

  1. Denny Hamlin
  2. Clint Bowyer
  3. Daniel Suarez
  4. Erik Jones
  5. Jimmie Johnson
  6. William Byron
  7. Aric Almirola
  8. Kevin Harvick
  9. Kurt Busch
  10. Kyle Busch
  11. Ryan Newman
  12. Martin Truex Jr.
  13. Chase Elliott
  14. Austin Dillon
  15. Michael McDowell
  16. Ricky Stenhouse Jr.
  17. Joey Logano
  18. Alex Bowman
  19. Paul Menard
  20. Chris Buescher
  21. Ty Dillon
  22. Ryan Preece
  23. Bubba Wallace
  24. Matt Tifft
  25. David Ragan
  26. Matt DiBenedetto
  27. Parker Kligerman
  28. Corey LaJoie
  29. Ross Chastain
  30. Landon Cassill
  31. BJ McLeod
  32. Garrett Smithley
  33. Daniel Hemric
  34. Reed Sorenson
  35. Bayley Currey
  36. Brad Keselowski
  37. Ryan Blaney
  38. Timmy Hill
  39. Kyle Larson

Here's how it all went down:

Stage 1: Seven-time champ shows speed

Jimmie Johnson started the race from the pole alongside Hendrick Motorsports teammate William Byron on the front row. Johnson got out to an early lead while Byron and Chase Elliott followed.

Erik Jones brought out the first caution of the day when he went spinning about 15 laps into the race. The No. 20 didn't suffer any significant damage as it was a non-contact caution, but it did allow drivers to come down pit road and make adjustments. Kyle Busch was one of those drivers, however he missed his pit box under yellow. Fortunately for the No. 18 team, Busch only lost one spot on the racetrack.

Johnson restarted from the lead with Joey Logano in his rearview. While the No. 22 gave him a good battle early, the No. 48 was able to build a lead once lapped traffic came into play.

The seven-time champ eventually forfeited the lead when he came down pit road for tires and fuel with 26 laps to go in the stage. The rest of the field followed with green flag stops of their own. Notably, Denny Hamlin slowed and missed pit road on his first attempt and on the second, he was dinged for speeding and had to serve a pass-through penalty.

Former Johnson crew chief Chad Knaus kept teammate Byron out on the track in hopes of stretching fuel and earning a stage win. Byron couldn't save enough fuel however and had to pit with six laps to go, turning the lead over to Clint Bowyer who then pitted with four laps to go.

With three to go, Logano resurfaced as the race leader ahead of Johnson as the two recycled to the front of the field. Logano would go on to win the stage, his second of the season. 

Stage 1 results

  1. Joey Logano
  2. Jimmie Johnson
  3. Chase Elliott
  4. Austin Dillon
  5. Ryan Blaney
  6. Paul Menard
  7. Daniel Suarez
  8. Kyle Busch
  9. Kyle Larson
  10. Chris Buescher

Stage 2: Chase Elliott, Kyle Busch get involved

The leaders made stops under yellow between stages with Kyle Busch leading them off pit road,. However, Martin Truex Jr., Kurt Busch, Clint Bowyer, Kevin Harvick and Aric Almirola stayed out and led the field to green for the start of Stage 2. Notably as the green flag waved, Brad Keselowski was on pit road getting adjustments after complaining his car. He spent some time in the garage but made it back out onto the track.

Kyle Busch didn't waste time taking the lead away from his teammate, Truex, early in the stage. It wasn't easy getting to the front though, Busch nearly wrecked while passing his brother, Kurt Busch.

The No. 18 spent 13 laps out front before surrendering the lead to Chase Elliott, who had fresher tires. Elliott took off in clean air once assuming the lead with Logano and both Busch brothers behind him.

Kurt Busch got green flag pit stops going from the front with a little under 32 laps to go. Elliott followed five laps later, forfeiting the lead to Logano, who pit the on the next lap. In the midst of green flag stops, Kyle Larson's car caught fire after hitting the wall and brought out the caution. Larson was forced to retire for the day.

After a lengthy caution for pit-road cleanup, Denny Hamlin led the field back to green (fuel only pit stop) ahead of Kyle Busch and Ryan Blaney. Joey Logano was forced to restart from the rear after suffering an uncontrolled tire penalty on pit road.

Despite not taking tires, Hamlin had no problem holding the lead and driving on for a stage win ahead of Blaney.

Stage 2 results

  1. Denny Hamlin
  2. Ryan Blaney
  3. Daniel Suarez
  4. Kyle Busch
  5. Paul Menard
  6. Ryan Newman
  7. Ricky Stenhouse Jr.
  8. William Byron
  9. Michael McDowell
  10. Jimmie Johnson

Final Stage: Hamlin overcomes obstacles for second 2019 win

Ryan Blaney stayed out between stages and restarted as the race leader. The pit-road penalty bug struck Stage 2 winner Denny Hamlin again, this time being dinged for an uncontrolled tire as was Kevin Harvick.

While Hamlin and Harvick worked to overcome their shortcomings, Blaney had no problem pacing the field out front. A couple drivers, Kurt Busch and Paul Menard, had to come down pit road from inside the top 15, unscheduled due to reports of vibrations. After another stretch run, Austin Dillon came down pit road as well with 120 laps to go after running inside the top 10 for adjustments.

Shortly after Dillon, Blaney went to the pit from the lead with 117 laps to go and really got scheduled stops going. Kyle Busch -- on a different pit sequence than Blaney -- resumed the lead. Once Blaney brought it to pit road, he never got it back on the track. The No. 12 Ford caught an engine problem and had to be wheeled to the garage.

Kyle Busch wheeled it into the pits with 97 laps to go, which completed the pit cycle. Daniel Suarez emerged as the race leader with Busch jumping back to second place in no time. Suarez led nine laps before inevitably surrendering the lead back to Busch.

Just as cars were beginning to consider their final green flag pit stop strategies, Daniel Hemric blew a tire and brought out the caution. This allowed drivers -- especially Kurt Busch -- to capitalize with another stop.

One driver that chose to stay out was Aric Almirola, who restarted as the race leader. However on the restart it was Erik Jones who claimed the top spot, recovering from an earlier mishap in Stage 1. It didn't take long for his teammate Kyle Busch to take over the lead.

Suddenly, while leading the race, Busch got loose and forfeited the lead. Then he went on to slap the wall, forcing him to come down pit road for right-side tires. Busch claimed on the radio that the car just got away from him.

With Busch pitting, Jones resumed the lead ahead of Hamlin. While Jones led, Elliott got green flag pit stops going with 40 laps to go. The No. 20 followed 8 laps later with 32 laps to go, handing the lead to Hamlin.

Hamlin paced the field until about 14 laps to go, but needed to come down for fuel and a chassis adjustment. This handed the lead over to William Byron, who took a pit stop on the next lap. After that, it was Austin Dillon who took the top spot before pitting with 12 to go.

After the final scheduled pit cycle, it was Hamlin who recycled to the lead ahead of Bowyer, Suarez, Jones and Johnson. Fortunately for Hamlin, his car was good enough on the short run as he easily drove to his second checkered flag of the season. 

Miss any of the action? Relive it via our live blog below.