Kevin Harvick sailed by Earnhardt coming out of the final turn at Charlotte Motor Speedway, where Earnhardt was comfortably out front in the closing laps of NASCAR's longest race of the year. Earnhardt knew stretching his gas to the finish was going to be tough, but crew chief Steve Letarte ordered him to go for broke.
Earnhardt faded to seventh, while Harvick snatched his third victory of the year.
"We weren't supposed to make it. We played our hand," Earnhardt said. "I tried to save a ton of gas, as much as I could. I'm disappointed we didn't win. To come so close. But if we had won that race, it would have been a gift."
Earlier Sunday, rookie JR Hildebrand crashed coming out of the final turn to lose the Indianapolis 500. Both Earnhardt and Hildebrand are sponsored by the National Guard, and the finishes of the two big races spoiled what would have been a celebratory Memorial Day for the military, which makes sponsorship of auto racing its top marketing tool.
Earnhardt's losing streak is now 105 races, as NASCAR's most popular driver has not won since Michigan in 2008.
David Ragan finished second behind Harvick, followed by Joey Logano in third. Kurt Busch was fourth, AJ Allmendinger fifth and Marcos Ambrose sixth.
Regan Smith was eighth and David Reutimann and Denny Hamlin rounded out the top 10.