CLEVELAND (AP) -- A week ago, the Indians were reeling amid serious questions about whether they could contend.
Five wins have put them back on track.
And back on Detroit's heels.
Asdrubal Cabrera hit a two-run double to cap Cleveland's comeback in the sixth inning, and the Indians charged into the All-Star break with a 6-4 win over Kansas City on Sunday and three-game sweep of the Royals.
Cabrera's double off Tim Collins (2-5) led the roller-coasting Indians to their fourth straight win. At 51-44, they stayed 1 1-2 games behind the first-place Tigers in the AL Central. Last week, Detroit took three of four from Cleveland to widen its lead in the division. It seemed the Tigers were poised to run away and hide.
But with their fans fearing a collapse like last year, the Indians pulled together.
"We got the city of Cleveland to step back off the ledge after the Detroit series," said All-Star second baseman Jason Kipnis. "So that's good. We wanted to push ourselves. To be able to sweep them and get a couple days off now, that's a great way to end it."
Cleveland has its most wins at the All-Star break since 2007 -- the last time the Indians made the playoffs.
Reliever Rich Hill (1-1) got two outs in the sixth, and closer Chris Perez -- Cleveland's fifth reliever -- worked the ninth for his 13th save as the Indians improved to 43-1 when leading after eight.
Billy Butler had three hits for the Royals (43-49), who dropped their fifth straight. Kansas City is third in the AL Central, eight games back.
"We've had a rough five games," manager Ned Yost said. "They can go take a break, regroup and hopefully come back and play more consistent baseball."
The Indians have had their issues with inconsistency, as well, but they have been resilient all season. The series finale was no different as Cleveland trailed 4-3 in the sixth before rallying against Kansas City's usually reliable bullpen.
Collins, who took the loss in Friday's series opener, walked Lonnie Chisenhall leading off. Drew Stubbs singled, Michael Bourn sacrificed, and Cabrera, whose name has surfaced in trade rumors, drove a 1-0 pitch into the gap in right-center to put Cleveland back in front.
Kipnis followed with an RBI single off Everett Teaford to give the Indians a 6-4 lead.
"I was real proud of our guys," manager Terry Francona said. "We kept battling, and because of it we go into the break with a nice win."
Bryan Shaw and Joe Smith combined for two scoreless innings before Perez, who spent time on the disabled list and was charged with drug possession in the first half, gave up a one-out double in the ninth but struck out Butler and retired All-Star catcher Salvador Perez on a grounder for the final out.
The Indians have overcome their share of injuries, inconsistent pitching and a 4-16 stretch which put them 5 1-2 games back of the Tigers on June 17.
After dropping three of four to Detroit, Cleveland finished the first half by going 5-1.
"It's been a great first half for us," Indians first baseman Nick Swisher said. "We've dealt with a lot of injuries and to be standing where we are right now, we've got to feel great about that."
Royals starter James Shields ended up with his seventh no-decision in his last nine starts. The right-hander allowed three runs and seven hits in five innings, leaving with a 4-3 lead. Shields has received sparse run support as the Royals have scored just nine total runs in his six losses.
Shields, though, was more focused on getting his team turned around than his record.
"You never want to lose five in a row, but I'm not too worried about it," Shields said. "We've done a good job of grinding this first half. It definitely could be a lot worse and it definitely could be a lot better. Right now we need to kick it in gear and string together some wins."
Indians starter Ubaldo Jimenez didn't get through the fifth inning, his shortest start since June 7.
After the Indians took a 3-2 lead in the third, Jimenez let the Royals grab it back in the fourth on Johnny Giavotella's RBI groundout and Alcides Escobar's run-scoring single.
Jimenez walked the leadoff hitter in the fifth and was quickly pulled by Francona before things got worse. Reliever C.C. Lee made his major league debut and retired the Royals on three straight popups to keep the Indians within one.
Shields worked around a two-on, none-out jam in the second, but hurt himself with a one-out walk in the third when the Indians scored twice to take a 3-2 lead.
Kipnis walked with one down and moved up on a groundout. Michael Brantley, who came in batting .382 with runners in scoring position, hit an RBI single to tie it 2-all. Santana then doubled inside the bag at first, and third-base coach Brad Mills never hesitated in waving Brantley home.
"I don't feel like I struggled," Shields said. "I threw some really good pitches. I think I threw three changeups that probably would have hit the dirt, and they got base hits on them. They probably had about 20 foul-offs. That's a good team over there. They work really good at-bats."
NOTES: Cleveland's pitchers haven't given up a home run in 60 innings. ... Last year, the Indians were 44-41 at the All-Star break and three games out of first place. They collapsed in August, going 5-24. ... Francona will spend a few off days in Las Vegas. "I'm going to see how much money I can lose," he cracked. "I'm going to lay low." ... Kansas City will be represented in New York by Alex Gordon, Perez and closer Greg Holland, the first time the Royals have had three All-Stars since 1988. Perez is the first KC catcher on the team since Darrell Porter in 1980.