After dropping as far back as 27th on lap 234 of 500, Harvick's No. 29 Chevrolet came to life with a bevy of adjustments by crew chief Gil Martin. Harvick charged from sixth to first in the final 100 laps, giving Richard Childress Racing its first Martinsville Speedway grandfather clock (the winner's trophy at the 0.526-mile oval) since 1995 — and denying NASCAR's most popular driver his first victory since June 2008.

"I could see the people just going crazy when he took the lead," Harvick said. "And as I was catching him, I'm like, 'Man, I'm going to be the bad guy here.' "

Earnhardt's winless streak stands at 99 races, but Sunday proved his team might be poised to make the Chase for the Sprint Cup for the first time in three seasons. The runner-up finish was his best since a second in the 2010 Daytona 500, and it came on a day when he said his No. 88 Chevy wasn't top-five caliber.

But shrewd pit strategy by crew chief Steve Letarte catapulted Earnhardt into contention by the race's midpoint, and he aggressively hung on until nudging Kyle Busch (third) out of first with 21 laps left.

"I was meant to win that … race," Earnhardt said. "I'm disappointed that I didn't get the job done."

But there was the solace of being eighth in points (his highest spot in nearly a year) with three top-10s.

"We need to do like today to steal a few spots some weekends to have a shot at making the Chase," Earnhardt said. "I'll let you know when I feel like I'm back, personally. We got some work to do still."

Three prerace favorites might feel the same way. Busch, Hamlin and Johnson had combined for the previous 15 short-track wins in NASCAR's top series (and either Hamlin or Johnson had won the previous nine at Martinsville). A similar outcome was developing with 100 laps left Sunday and the trio in the top five.

But Johnson (11th, ending a streak of 17 straight top 10s at Martinsville) was penalized for speeding entering the pits on his final stop (the five-time champion denied going too fast, saying NASCAR punished him for timing his acceleration too well through its speed traps). And Busch's No. 18 Toyota was set up for long green-flag stretches, so he couldn't fend off Earnhardt after a caution with 33 laps to go.

"I probably had the best car," said Busch, who led a race-high 151 laps but saw a win snatched away for the second day in a row (he was second in Saturday's Camping World Truck Series race), "but can't seem to find speed at Martinsville when it matters most."

Hamlin (12th, first time outside the top 10 here in 10 races) was burned by slow pit work and mediocre fuel economy that forced him to make his final stop more than 10 laps earlier than others.

"We have to get rolling," said Hamlin, 19th in points. "All of the things we need to do to be a championship team, we don't have all those parts together."

For more information about reprints & permissions, visit our FAQ's. To report corrections and clarifications, contact Standards Editor Brent Jones. For publication consideration in the newspaper, send comments to letters@usatoday.com. Include name, phone number, city and state for verification. To view our corrections, go to corrections.usatoday.com.