CONCORD, N.C. -- Brad Keselowski extended Jimmie Johnson's losing streak to 102 races, holding off the seven-time NASCAR champion in overtime early Monday in the Coca-Cola 600.
Keselowski started in the back of the field, worked his way to the front at Charlotte Motor Speedway and gambled in not pitting when caution stopped Chase Elliott from winning with two laps remaining.
Elliott pitted, and Keselowski led a train of eight cars that stayed on the track. He lined up in front of Alex Bowman on the inside line with Johnson -- retiring from Cup racing at the end of the season -- on the bottom ahead of Keselowski teammate Ryan Blaney.
Keselowski got the push to get into clean air and denied Johnson a victory. Keselowski celebrated as he usually does by waving a giant American flag out his window during his victory burnouts.
"I feel like I have thrown this race away a handful of times, and I thought we were going to lose it today,'' Keselowski said. "I have lost it the way Chase lost it, and it really stinks. And today we finally won it that way.''
It was the first win for Keselowski this season, his first Coca-Cola 600 victory and the first win at this event for Ford since 2002.
When Keselowski first got out of the car for his network interview, the silence at the track was a downer.
"I was kind of bummed. I wanted to win the 600 my whole life and wanted to win in front of everybody,'' he said. "But that's not always how it works. I know there are fans that wish they could be in the stands.''
In these unusual times of the coronavirus pandemic, NASCAR is still adapting in its return to racing a full week ago. This event was its third Cup race in seven days -- all without spectators -- and limited media access.
Wearing a white Team Penske face mask, Keselowski went to the empty infield media center for a postrace news conference over Zoom. Unable to hear the questions, he shouted into the computer.
"Can you talk really loud?'' he yelled. "My ears are ringing.''
A rain delay of nearly 90 minutes during the first stage of the race pushed the finish into early Monday, but it still ended up just fine for Roger Penske, the owner of Keselowski's car who should have spent Sunday celebrating his first Indy 500 as the new owner of Indianapolis Motor Speedway
"This is one of the biggest days for him," Keselowski said. "Winning never hurts. This is my 30th win, and I think I have another 30 in me.''
Keselowski raced on behalf of late United States Air Force member Michael Donovan Reep.
"I've wanted this race for so long," Keselowski tweeted. "This one's for Donovan!"
I've wanted this race for so long. This one's for Donovan! ?? pic.twitter.com/WFy974wQa8
— Brad Keselowski (@keselowski) May 25, 2020
Johnson finished second, one spot ahead of devastated Hendrick Motorsports teammate Elliott, as Chevrolet is still seeking its first win in the three Cup races since NASCAR resumed.
But almost two hours after the race, NASCAR disqualified Johnson because his Chevrolet failed postrace inspection, saying the alignment of his rear suspension was not within allowable specifications.
"We think something must've broken," said Johnson crew chief Cliff Daniels, "but won't know until we get it back to the shop. Tough news after a strong night."
Elliott had a comfortable lead and was coasting to the win when Hendrick Motorsports teammate William Byron spun with a tire problem.
"That's got to be a joke,'' Elliott said over his radio.
Elliott was wrecked by Kyle Busch trying to race for the win at Darlington Raceway on Wednesday night. It led to Elliott making an obscene gesture with his middle finger to Busch at Darlington.
This time, he was briefly consoled by Busch as he climbed from his car on pit road. But he was openly disappointed for the second time in four days.
"I was a lap-and-a-half away from winning the 600,'' Elliott said. "This week has been pretty unfortunate, we have had some tough losses.''
The race was snatched from Elliott by the caution for Byron and then the pit decisions that followed.
"I feel for those guys," Johnson said. "It's so tough being the leader, making those late-race decisions for pit road. I've lost some like they have; I've won some. And I feel for him. ... They're strong; this is only making them stronger, and only making Chase more of a fierce competitor than he already is."
The Sunday before Memorial Day is a supposed to be a smorgasbord of motorsports that begins with Formula One at the Monaco Grand Prix, then IndyCar and the Indianapolis 500, followed by NASCAR and its longest race on the calendar.
The coronavirus pandemic has wiped out the first part of F1's schedule and, like IndyCar, it is still waiting to start its season. The Indy 500 has been postponed to August, marking the first time since 1946 the 500 is not being run on Memorial Day weekend.
NASCAR was able to resume its season under a health plan approved by state officials that allowed the sport to resume after a 10-week hiatus. NASCAR ran three events in South Carolina, and the Coca-Cola 600 kicks off four consecutive days of racing at Charlotte.
The Associated Press contributed to this report.