Kyle Busch won the spring race at Richmond International Raceway for the fourth year in a row after holding off Dale Earnhardt Jr. in the closing laps of Saturday night's Capital City 400.

Busch benefited from a late-race caution when he beat then-leader Tony Stewart out of the pits and took over the top position. Earnhardt Jr. snatched second from Stewart after the final restart with nine laps remaining and then challenged Busch for the lead. But Earnhardt Jr. experienced brake issues and came up one second short of ending his near four-year winless drought in the Sprint Cup Series.

"I don't know where that last caution came from, but that was our saving grace today," Busch said. "This was a really good race car, but it just didn't have quite enough on the long run like Stewart had. He was really, really good."

Busch picked up his 24th career Sprint Cup win but his first since August 2011 at Michigan (21 races ago). His victory also came one night after he claimed his maiden win as a car owner in the Nationwide Series. His elder brother, Kurt, held off Denny Hamlin in a last-lap side-by-side battle in the 250-lap Nationwide event.

Carl Edwards dominated the race by leading 206 of 400 laps. But Edwards blew an opportunity to win it when he was penalized for jumping the restart while running in the top spot with 81 laps remaining. He ended up finishing 10th.

"I still don't understand why [NASCAR] black-flagged me," Edwards said. "They said we were the leader. I restarted the best I could, given the disadvantaged position I was in. So the problem is that I don't know if NASCAR is going to take the stance that we shouldn't have started the race first or that I jumped the start. If they're saying I jumped the start, that would be really frustrating, because I started the same way I started all night."

Edwards has not won a Sprint Cup race since March 2011 at Las Vegas.

After finishing third, Stewart was critical of NASCAR's decision to display the caution flag for debris that he thought was a plastic bottle littered on the backstretch. Stewart held a two-second lead before the caution came with 13 laps to go.

"We did everything we could do to throw it away tonight," a frustrated Stewart said. "That was the best race car I've had at Richmond in a long time. I'm really proud of [crew chief] Steve Addington and the guys, but we got some work to do on pit stops right now. I don't know what their malfunction was, but I'm pretty ticked off about it tonight."

Virginia-native Denny Hamlin finished fourth, while Kasey Kahne took the fifth spot.

Jimmie Johnson also put himself out of winning contention when he was penalized for a tire violation during a late-race round of pit stops. Johnson rebounded for a sixth-place run.

"Unfortunately, we had a tire get away from us, and after serving that penalty, we had to go to the back," he said. "I certainly wish we didn't have that mistake, but mistakes happen."

Clint Bowyer placed seventh, followed by Mark Martin, the pole sitter, and Brad Keselowski.

With his second-place run, Earnhardt Jr. trimmed Greg Biffle's lead to just five points. Biffle finished 18th.

"We had some brake problems all race long," Earnhardt Jr. said. "I had a great restart and ran really great for one lap, but the [brake] pedal went back to the floor."

Hamlin is now nine points behind Biffle, while Matt Kenseth is 10 markers out of the lead after finishing 11th.