CLEVELAND -- Left off the All-Star team, Travis Hafner figures he can still reach a more important goal - the postseason.
The Indians have won eight of 10 and 20 of 27. They improved to 25-1 when scoring six or more runs.
The Tigers lost for the ninth time in 11 games.
"It was too much Travis Hafner and too much Scott Elarton," Detroit manager Alan Trammell.
Denied a spot on the AL roster Sunday, Hafner scored three runs and went 4-for-5 with a walk to boost his average to .313.
"When they took the vote, I didn't have a very good case," said Hafner, who has six homers in 10 games and 16 RBI in his last eight. Since June 1, he is hitting .379 with 11 homers and 36 RBI in 28 games.
"Being an All-Star wasn't a goal of mine when I came out of spring training," the designated hitter said. "What I wanted was to be more consistent at the plate, help my team win, and get to the playoffs."
So far, he's on track on two counts -- which could lead to achieving the third goal.
"It just feels like I am competing real well," Hafner said. "When I get a pitch to hit, I'm able to put a good swing on it. I've been on a good streak."
So has Elarton (5-3), who pitched his fourth career complete game and first since a two-hit shutout of the Chicago White Sox on Aug. 29.
"Obviously, when you have a doubleheader and your starter goes all the way, that's a big pickup for everybody on the team," Indians manager Eric Wedge said.
Elarton gave up a one-out single by Carlos Guillen in the first inning, then retired 17 in a row before Guillen beat out an infield single in the seventh. Chris Shelton and Rondell White followed with singles to ruin the right-hander's shutout bid.
"He did a good job," White said. "He threw a lot of first-pitch curveballs for strikes. He also used his changeup."
White hit a two-run homer in the ninth, but Elarton hung on to go to 5-1 with a 3.32 ERA in his last nine starts. He struck out six without a walk.
"I just tip my cap to Rondell because he's a good hitter," Elarton said. "I felt strong in the ninth even though it was hot and was hoping I could close it out."
Hafner put Cleveland ahead 1-0 against Jason Johnson (5-7) with an RBI single in the first inning, scoring Coco Crisp, who doubled.
In a two-run third, Crisp singled and went to third on a single by Hafner. Ben Broussard had an RBI single that sent Hafner to third, and Ronnie Belliard followed with a sacrifice fly for a 3-0 lead.
Cleveland broke it open in the fourth. Josh Bard doubled and scored on a single by Jhonny Peralta. Grady Sizemore then bounced a single over the mound and, after Crisp struck out, Hafner hit a 471-foot shot to center to make it 7-0.
Hafner hit his 16th homer off Doug Creek in the sixth for the sixth multihomer game of his career.
Johnson gave up seven runs and 11 hits in 3 1/3 innings, his shortest start since April 13 at Minnesota -- when he got only one out and was roughed up for five runs.
Cleveland scored an unearned run in the seventh to make it 9-1.
- Cleveland is 33-18 (.647) since May 9 and has won 14 of its last 20 home games.
- Hafner has 28 RBI in his last 17 games.
- Indians 3B Aaron Boone missed the game to be with his pregnant wife.
- Johnson fell to 0-3 with a 7.68 ERA in 10 career games, including eight starts, against the Indians.
- Indians recalled P Jason Davis from Triple-A