Earnhardt Jr. dipped to the inside without any drafting help and went past Stewart in the trioval with 20 laps remaining.
"I can't believe I passed him by myself," Junior said. "I don't know what was going on. It was like a magic trick."
That was impressive beacause Jr. didn't have any help after his teammate Michael Waltrip was in a muti-car crash earlier in the race and went flipping thru the in field grass. He was uninjured.
Tony Stewart was no match for Jr,who would pull away on the back stretch leaving Tony in the rearview mirror.
"I was taught so many lessons by this place before I ever got behind the wheel," Earnhardt said. "I'm glad I don't have to worry about (winning the 500) anymore. That's awesome."
Stewart led 97 laps -- nearly half the 200-lap event -- but he didn't have enough to hold off Earnhardt, who set the pace for 59.It's nice to see him get his victory, too," Stewart said. "I think his father is proud today. I wanted to win the race. Trust me, if I could have held him off, I would have.
Scott Wimmer was the top finishing rookie (3rd) He briefly held the lead after gambling on his final pit stop -- taking only two tires -- but he didn't have enough grip to hold on.Kevin Harvik and Jimmy Johnson rounded out the top 5.
Pole-winner Greg Biffle had to start from the back of the 43-car field after changing an engine Saturday. That allowed Earnhardt to take the green flag from the pole. Biffle made up a lot of ground in an overheating car, running near the front late in the race. But he faded to 12th.