Kyle Larson continued a dominant month of June by winning the NASCAR All-Star Race and $1 million prize on Sunday night at Texas Motor Speedway.

Larson prevailed in a three-driver battle with Hendrick Motorsports teammate Chase Elliott and Brad Keselowski. In the final 10 lap segment, it looked like Larson and Elliott were going to duel for the money, with Larson charging around the outside of Elliott with eight laps to go. But it was short-lived as, coming off Turn 4, Keselowski got to the inside of both drivers to claim the top spot at the start/finish line.

In Turns 1 and 2, Larson then charged right back to take the lead for good. It is his second victory in the All-Star Race (2019). While it is a non-points event, Sunday marks Larson’s third straight NASCAR win behind Charlotte and Sonoma.

“Definitely, definitely,” Larson said when asked if he was living a dream. “I can’t – honestly – I can’t believe it. That second run there, we were really bad, and I was like, man, we’re in trouble. I went backward that round, so I was like, we’ve got an uphill battle. I did not imagine seeing myself winning this race today. Cliff (Daniels, crew chief) and everybody works so hard on this thing and made some good adjustments throughout the first, second, and third rounds and got us in position.

“That last restart worked out exactly how I needed it to. I wanted Chase to not get a good run down the back. Thankfully, I think the 12 (Ryan Blaney) got to his inside. I just shoved him down the back, and he probably thought I was going to just follow him. I thought there had to be enough grip above where we’d been running for one corner, it was a little slick up there, but I was able to get it and hold him off from there. I can’t believe it.”

Larson started fourth in the final segment after choosing to restart in the outside lane. The starting order for the final 10 lap segment was determined by the finishing order in the fifth round, which Larson finished third behind teammates Elliott and William Byron.

Larson and the No. 5 team started the night on the pole and won the first segment. He led 17 of the race’s 100 laps.

Keselowski finished second, and Elliott was third. Joey Logano finished fourth, and Ryan Blaney finished fifth.

Blaney started in the lead for the second segment when the top-12 drivers were inverted. He then won the round over teammate Keselowski.

The entire field was inverted to start the third round, putting Aric Almirola in the lead. Almirola had a brief stint at the front before Matt DiBenedetto took the top spot. Alex Bowman came calling on lap 37 and won the third segment over DiBenedetto.

The top nine drivers were inverted to begin the fourth segment, which put Byron in the lead. Byron won the round over Larson and Denny Hamlin.

Cumulative finishes determined the lineup for the fifth round. Byron started in the lead with Larson, Elliott, and Blaney. During the fifth round, teams were mandated to make a four-tire pit stop, with the fastest team taking home $100,000. Elliott’s team won the prize money.

Kyle Busch and Austin Dillon were caught speeding during their pit stops and taken out of contention. Busch got his lap back when a caution flew on lap 79 for Ross Chastain spinning. It was a timely caution for Keselowski, who remained the race leader as he returned to the track ahead of Elliott.

But Elliott won the fifth round over Byron, Larson, Blaney, and Keselowski. Dillon received the free pass after the fifth round.

Following the choose rule, the lineup for the final round was Elliott, the race leader, with Byron to his inside. Blaney and Larson started in the second row, and then Hamlin and Keselowski started in the third row.

Byron led the most laps in the All-Star Race 30.

Larson delivers Hendrick Motorsports its record-extending 10th All-Star Race win and second consecutive. Chase Elliott won the event last year.