Using the lapped car of Joe Logano as a pick, Truex finally worked his way around Hamlin to take the lead on Lap 229 and held on for his sixth stage win of the 2019 nascar cup Series season.
Kyle Larson ended up second, Hamlin third, Kevin Harvick fourth and Jimmie Johnson fifth.
During the break between Stages 1 and 2, all of the lead-lap cars elected to pit with Hamlin the first off pit road.
On the restart on Lap 129, Hamlin led the way followed by Truex and Larson.
Kyle Busch was penalized for speeding on pit road during his stop and had to restart the race from the rear of the field.
Harvick got around Truex on Lap 130 to move into the second spot.
After 150 laps, Harvick appeared to be closing on Hamlin to challenge for the lead while Truex remained in third.
On Lap 182, several of the lead-lap cars began starting a round of green-flag pit stops to pick up enough fuel to make it to the end of the stage.
William Byron was penalized or speeding on pit road during his stop and he was forced to make a pass-through penalty. After the penalty, Byron ran 17th and one lap down.
Once the cycle of stops was completed on Lap 188, Hamlin remained in the lead followed by Truex, Harvick and Larson.
With 40 laps remaining in the second stage, Hamlin maintained a lead of just under a second over Truex. Harvick ran third, 2.6 seconds behind the leader.
On Lap 223, Larson worked his way around the outside of Harvick and took over the third position.
Truex, thanks to the lapped car of Logano, went to the outside of Hamlin and took the lead on Lap 229 for the first time in the race.
On Lap 232, Kyle Larson went to the inside of Hamlin in Turn 2 and took second as the leaders worked through traffic.