CLEVELAND - Asdrubal Cabrera helped Jim Thome celebrate his 41st birthday in true slugger's style.
Two innings after Thome hit his 602nd career homer, Cabrera belted a three-run shot with two outs in the eighth inning to lift the Cleveland Indians to an 8-7 win over the Kansas City Royals on Saturday night.
"It felt great. Great because we won the game," Cabrera said after connecting on a 1-1 pitch from Louis Coleman (1-4) to give the Indians their 21st last-at-bat win and 32nd comeback triumph overall.
Second-place Cleveland remained 6 1/2 games behind Detroit in the AL Central, while the last-place Royals dropped to 21-28 in one-run games, 4-17 on the road.
"It's a very important win," manager Manny Acta said. "We never gave up. We've done it all year. It was a roller coaster of emotions, but fortunately we won and we'll keep trying to win and see where it takes us."
Joe Smith (3-3) got the final out in the eighth for the win and Chris Perez pitched the ninth for his 29th save. Perez threw out a runner trying to go to third on a sacrifice bunt, then fanned two Royals to strand a runner at second.
"That was a quality save and great play on the bunt," Acta said. "It takes guts to do that type of play."
Perez said that he thought about the situation before Alcides Escobar — bunting on his own — tried to sacrifice.
"I've got to make that play," the right-hander said. "I had time that if the runner was going to get to third, I could still get an out at first."
Escobar stole second and Perez struck out two tough lefties in Alex Gordon and Melky Cabrera — who came to bat 3 for 3 with 4 RBIs this season against Cleveland's closer.
"I knew the history there," Perez said of Melky Cabrera. "I got him on a slider, the pitch he hit to beat me earlier this year.
"We needed this win and we got it. What a fun game!"
Thome said Cleveland's Comeback Kids make him feel rejuvenated. His solo homer in the sixth in his second game back with the Indians tied it at 4.
"I'm old enough to be some of these guys' dad," Thome said. "They make me feel young again."
Gordon, who had three hits, belted a three-run homer in the seventh off reliever Tony Sipp to put the Royals ahead 7-4. Sipp replaced Fausto Carmona with runners on first and third in a lefty-against-lefty matchup, but yielded Gordon's 18th homer.
Asdrubal Cabrera's RBI single pulled Cleveland to 7-5 in the seventh.
In the eighth, pinch-hitter Lonnie Chisenhall singled with two outs and Kosuke Fukudome walked. Cabrera followed with his 21st homer into the right-field seats.
Thome got a rousing standing ovation as he slowly rounded the bases with his 335th homer in a Cleveland uniform, a line shot to left-center that extended his club record. The crowd kept cheering until Thome came out for a curtain call in a scene reminiscent of the slugger's glory days in Cleveland from 1991 until leaving as a free agent following the 2002 season.
"That's why we got him," Acta said. "He's always one swing away from something special."
It was Thome's first homer for Cleveland since Sept. 28, 2002, off the Royals' Jeremy Affeldt. That was his 52nd homer that year, still the Indians' single-season record.
Thome needs seven homers to tie Sammy Sosa for seventh on the all-time list.
Kansas City used three pitchers to get one out apiece in the seventh and strand two Indians on base.
"It felt like we were trying to stick our fingers in the dike all day long before it caved in on us," Royals manager Ned Yost said of the back-and-forth game. "We couldn't get anybody to have a clean inning."
Kansas City scored three runs with two outs in the third off Carmona to go ahead 3-1. Mike Moustakas had a two-run double after Eric Hosmer singled home the tying run.
Jack Hannahan had three RBIs for Cleveland. His two-out single in the second off Royals starter Danny Duffy made it 1-0. He tied it at 3 with a two-out, two-run triple in the fourth.
Melky Cabrera put Kansas City ahead 4-3 with an RBI double in the fifth, though Gordon was out trying to score from first. Duncan's strong throw from the left-field corner to Hannahan and the third baseman's accurate relay to Lou Marson gave the catcher a chance to make a play. Marson blocked the plate and made a sweeping tag as Gordon tried to go around him.
Notes: Gordon was in a 2-for-15 slump with nine strikeouts until going 3 for 4 with a walk. Gordon is hitting .484 (15 for 31) off Carmona overall. ... Acta said OF Shin-Soo Choo will not be permitted to swing a bat for a few days. Choo left in the fifth after aggravating his sore left side. ... Indians RHP Josh Tomlin said he is confident he will pitch again this year. Tomlin went on the disabled list for the first time Friday with a sprained right elbow. ... OF Grady Sizemore, out since July 18 after abdominal surgery, took batting practice and fielded fungoes, but the Indians have no timetable for his return. ... Former Indians LHPs Greg Swindell and Scott Bailes greeted fans as part of the team's ambassador alumni program. ... Royals LHP Bruce Chen (9-5) will oppose RHP Justin Masterson (10-7) in the series finale Sunday. Chen has won a career-high four straight. He's 11-4 against the AL Central the past two years and 4-0 against Cleveland since joining Kansas City in 2009.