Johnson took the points lead over Keselowski, who won the first Chase race, while Hamlin moved to third in the Chase standings.

After two Chase races, Johnson leads Keselowski by one point while Hamlin is seven behind and Stewart 10 back. Kahne and Bowyer are tied for fifth, both 15 points behind, while Dale Earnhardt Jr. is seventh, followed by Kevin Harvick, Greg Biffle, Martin Truex Jr., Matt Kenseth and Gordon.

Gordon bounced back from a 35th-place finish last week at Chicago, but still trails the leader by 45 points. Kenseth is 35 points back in 11th.

Hamlin led 122 of the first 225 laps and held a lead of more than six seconds on Johnson when the fourth caution flag flew for debris with 28 laps remaining.

Hamlin and the rest of the leaders stayed out during the caution period. Then Hamlin sped away from Johnson on the restart with 23 laps to go, putting the finishing touches on an outcome that seemed certain over the final 200 laps. He beat Johnson by 2.5 seconds.

"The 11 car (Hamlin) was just phenomenal today," Keselowski said.

Hamlin predicted he would win Sunday’s race last week, tweeting after the Chicago race: "This is week 1 of 10. We will win next week."

While he backed off that prediction a bit over the weekend, he said he knew he would have the car to beat. He even mimicked Babe Ruth's famous called shot after climbing from his car after the race.

"It don't hurt to have a little confidence in your team," Hamlin told ESPN in victory lane. "I know we made a couple of big mistakes over the last two weeks, but I said we were fast enough to make it up, and we were. I am going to have these guys' backs until they die on me. This is my team."

Hamlin said he had no regrets about his bold prediction, which made headlines this week and put pressure on Hamlin and his team.

"You don't want to sound too cocky, but I knew what we were capable of," Hamlin said. "Our car was extremely strong and I have a really good knack for this racetrack and those two together with a crew chief like Darian (Grubb) is a good combination."

Though Hamlin and Keselowski have won the first two Chase races, Johnson has finished second in both events to take the points lead. He was smiling after the race, knowing he should be the favorite in next week's race at Dover International Speedway, where he has won six times.

Starting 32nd after a mistake in qualifying, Hamlin immediately began charging through the field. He cracked the top 20 on Lap 13 and was in the top 15 by Lap 30.

Hamlin and his crew said before the race they wanted to be in the top 10 by Lap 100. They were — and then some.

Hamlin cracked the top 10 shortly after a restart on Lap 46 and zoomed into fifth on Lap 57. He passed teammate Kyle Busch for the lead on Lap 94.

Among non-Chase drivers, Busch's up-and-down season continued. After finishing fourth last week at Chicago, Busch led early in the race and was running second to Hamlin when he dropped a cylinder and faded through the field. He finished 28th.

There were no crashes in the race and just four caution flags, one a competition caution and three for debris on the track.