NASCAR's longest race came down to less than three miles as 2012 Cup Series champion Brad Keselowski needed overtime to win the first Coca-Cola 600 of his career.

Hendrick Motorsports seemed to have the cars to beat as NASCAR kicked off the first of four consecutive days of racing at Charlotte Motor Speedway. Alex Bowman led a race-high 164 laps early, and Chase Elliott seemingly had the race in hand with just two circuits remaining. But a spin by William Byron brought out the night's final caution and ultimately ended the team's chance at victory.

Opting to pit before the final restart, Elliott fell out of contention, restarting 11th and leaving Keselowski to battle Jimmie Johnson for the win.

"Chase was really, really strong," Keselowski said. "I was thinking, 'I hate I'm going to finish second; I just need a break. Then the yellow came and it all came together. I'm so thankful to finally be able to win this race."

As has become tradition, the 36-year-old driver carried an American flag as he executed his celebratory burnout - fitting since he also carried a stars-and-stripes paint scheme in honor of Memorial Day Weekend.

"This is a special day," Keselowski said. "Memorial Day is racing. There will always be a close connection."

Johnson finished 0.293 seconds behind, trailed by Elliott. Ryan Blaney and Kyle Busch rounded out the top 5.

Action continues Monday with the Alsco 300 Xfinity Series race. The stars of the Gander RV & Outdoors Truck Series takes to the track Tuesday night for the North Carolina Education Lottery 200, before the Cup Series returns to put a bow on the week with the Alsco 500 on Wednesday.

Fans can catch all the action on FS1.