Ryan Blaney took the lead on a restart with eight laps to go, held off Kyle Larson and went on to win Sunday's FireKeepers Casino 400 at Michigan International Speedway.

The victory was the Team Penske driver's second of the season. His eight laps led were his only laps led.

He finished just a nose (.077 seconds) ahead of William Byron of Hendrick Motorsports, who finished second.

"That was cool, man," Blaney said. "I'm fired up."

Blaney struggled through the early part of the race, but the winner and his team was able to get back on track.

Newsletter signup for email alerts

"Man, we just worked on it a lot," he said. "We had our problems early and we took a lot of time to try to fix it and we got better and better."

Blaney also credited help he got from Kyle Busch on the restart.

"We got a great push by the 18 on the restart," Blaney said of his move to the lead, "and I was able to clear there."

Kyle Larson of Hendrick, looking for his sixth win of the season, had to settle for third place after leading a race-best 71 laps.

"The restart, the last one, worked out a little bit better than I thought it was going to for me," Larson said. "But the 11 (Denny Hamlin) kind of tried to take the 24 (Byron) three wide and they got loose and I got to the middle and came out third or something. I was able to get to second but just made a couple bad moves. Just, honestly, a little too patient behind the 12 (Blaney). Could have made some later, dives to the inside, I guess. Just made a couple wrong moves and let William get by me.

Kurt Busch finished fourth in his Chip Ganassi Chevy.

Hamlin, who appeared to be a threat to get his first victory of the season after leading 10 laps, was fifth in his Joe Gibbs Racing Toyota.

Hamlin said his team "has just been really strong all year long. We just can't get a caution right, we can't get a restart right, can't get just little tiny things right to get a win."

The margin between the first- and fifth-place care cars at the finish was .571 seconds.

For large chunks of the first two stages, it appeared that Chase Elliott would challenge for the victory -- he led 37 laps in the first stage and 31 in the second. When he wasn't leading, he was threatening for the lead. But on his pit stop between the second and final stage, a two-tire stop sent him backward and out of contention. He finished a disappointing eighth after leading 68 laps.

With Michigan over, just one race remains before the start of the 10-race, 16-driver Playoffs.

Fourteen drivers started Sunday having clinched berths with Kevin Harvick clinching the 15th spot on points Sunday.

Austin Dillon started the day just outside of the Playoffs cutoff line was having a terrific race, running for the lead for much of the second stage. But while running sixth at the end of the stage, the Richard Childress Racingmade contact with the car of Brad Keselowski and was spun violently into the wall.

He will now likely need to win at Daytona to earn a berth.

"I think we would have had a shot to do something there at the end with that race car," Dillon said. "Best race car we've brought to a race track this year at RCR."