CLEVELAND -- Travis Hafner signed a long-term contract and rediscovered his home run swing -- all in a few days.
"I'll take the homer," Hafner said. "Being able to get us an early lead with a home run means a lot."
"For him to get us going was as important as anything," manager Eric Wedge said after the Indians improved baseball's best home record to 33-13 with their seventh win in the past eight games at Jacobs Field.
Cleveland is in a tight race for first place with Detroit in the AL Central despite Hafner not producing at his average of 34 homers, 111 RBI and a .308 batting average the previous three years.
"He's kind of struggled and is still on pace to drive in 100 runs," Martinez said of Hafner, who is hitting .266 with 60 RBI.
The homer was Hafner's second in July and came three days after he signed a four-year, $57 million contract extension. The 436-foot shot went into the second level of seats in right field dubbed "Pronkville" in honor of the slugger who has 132 homers in 4½ seasons in Cleveland.
"Trot Nixon told me in batting practice that if I didn't hit one up there soon they would rename it 'Nixonville,' " Hafner said. "I knew it was gone. I just didn't know how far.
"I felt my swing coming on a couple weeks before the (All-Star) break. I'm feeling more comfortable."
Carmona (11-4) improved to 8-0 with a 1.98 ERA in nine daytime starts. The right-hander allowed two runs over seven innings to win his third straight start.
"Fausto had to work at it. He wasn't as sharp as he is capable of being," Wedge said. "But he got the job done."
Joe Borowski pitched the ninth for his 26th save in 29 chances.
Following Hafner's homer, De La Rosa either walked or struck out each of the next 10 batters -- until Ryan Garko led off the fourth with his 11th homer for a 3-0 lead.
Cleveland loaded the bases on three one-out walks in the third, but De La Rosa struck out Hafner and Jhonny Peralta.
Following Garko's homer, De La Rosa issued a one-out walk to Franklin Gutierrez, then left with a bruised left thumb after 83 pitches in 3 1/3 innings. The lefty had won his three previous starts by a combined score of 30-7.
"I pitched bad," said De La Rosa, adding that he doesn't know how he hurt his thumb. "I had a lot of walks."
During a span of 13 batters from the first inning until the fourth, no Royals player other than De La Rosa and catcher John Buck touched the baseball -- as the Indians got two homers, five walks and struck out six times.
Kansas City scored twice with two outs in the fifth, helped by a throwing error by second baseman Josh Barfield, who threw away a potential inning-ending double play. Billy Butler followed with an RBI double and scored on a single by Ross Gload to make it 3-2.
"We had some opportunities," Royals manager Buddy Bell said. "I thought their kid pitched well. He has good stuff. We just got beat."
Gutierrez had an RBI double and Barfield a sacrifice fly in the sixth to make it 5-2.
- Bell ran out to argue with first-base umpire Chad Fairchild, who called out Butler on a close play to end the seventh. Then God Bless America was played over the PA system, so both Bell and Fairchild took off their hats and politely stood alongside each other during the tribute. When the song ended, they resumed their discussion -- which by then had lost all intensity.
- Royals LHP John Bale pitched two scoreless innings in his first major league appearance since Sept. 18, 2003, with Cincinnati. He had since pitched in the minors and three years in Japan.
- Garko is batting .424 (14-for-33) during a nine-game hitting streak.
- De La Rosa is 0-3 with a 7.80 ERA in three starts against Cleveland this season.
- Royals 3B Alex Gordon went 1-for-2 against Carmona and is hitting .750 (6-for-8) against the right-hander.