KANSAS CITY, Mo. — Salvador Perez put himself in the company of some Hall of Famers at his position.

Perez and Jorge Bonifacio hit back-to-back homers during a four-run sixth inning, Heath Fillmyer pitched into the eighth and the Kansas City Royals held on for a 6-4 victory over the Minnesota Twins on Thursday night.

The loss by the Twins, who occupy second place in the woeful AL Central, reduced the division-leading Cleveland Indians' magic number to two.

Perez's 420-foot drive to left field was his 25th homer. He became the first AL catcher with back-to-back seasons of at least 25 home runs since Hall of Famer Ivan Rodriguez, who did it three straight years from 1999-2001. Another Hall of Famer, Mike Piazza, had eight consecutive seasons of 30 or more homers, ending in 2002.

Perez hit a career-high 27 homers last year.

"As a power hitter, he gets better every year," Royals manager Ned Yost said. "That was a huge hit there to give us the lead. Up to that point, we were really scuffling. We hadn't gotten a hit until that inning and Salvy came in and gave us a big boost."

The Royals trailed 2-1 and were hitless until Hunter Dozier greeted Alan Busenitz, the Twins' third pitcher of the game, with a leadoff double to left field in the sixth. Perez and Bonifacio followed with home runs.

"(Busenitz) tried to go up and missed right in the middle," Perez said. "I took a pretty good swing."

Busenitz (4-1) faced three batters, all of whom scored, inflating his ERA to 7.71.

"It's very frustrating because I know what I'm capable of and I'm not doing it," Busenitz said. "You've got to work on it and get better. You've got to learn from it and not make the same mistakes, you know?"

Fillmyer (3-1) worked 7 1/3 innings, allowing four runs on five hits and matching his career high with six strikeouts. In his previous start, the Twins bludgeoned him for six runs in 2 1/3 innings.

"I just wanted to get ahead, stay on the attack, not walk anybody, and try to let them get themselves out like I usually do," Fillmyer said.

Jake Cave hit a two-run homer, his 11th of the season, in the second against Fillmyer, who allowed only one hit and one walk during the next 5 1/3 innings.

Fillmyer left in the eighth with runners on the corners, both of whom eventually scored against relievers Brian Flynn and Brandon Maurer.

Jerry Vasto got the last out in the eighth in his fourth career appearance.

"Heath dominated tonight. He threw well," Vasto said. "I definitely wanted to come in and get those outs for him."

Wily Peralta worked a perfect ninth for his 11th save in 11 opportunities.

Eddie Rosario, who returned from missing four games after re-aggravating a quad injury, had an RBI single off Flynn, and Grossman delivered a sacrifice fly against Maurer to make it 5-4 before Vasto ended the threat.

The Twins went with a bullpen day, opening with Gabriel Moya, who worked two scoreless innings. Stephen Gonsalves pitched the next three, allowing no hits but walking four, and the last of those walks turned into a run in the fifth when Whit Merrifield scored on an error by shortstop Jorge Polanco.

Merrifield singled, stole second, went to third on an error and scored on Alex Gordon's fielder's choice for an eighth-inning insurance run.

TRAINER'S ROOM

Royals: OF Brett Phillips (shoulder) remains available as a pinch runner, but hasn't been fully cleared.

Rays: C Mitch Garver (head) woke up with a headache after taking a foul ball off the facemask on Wednesday. Manager Paul Molitor said Garver has a history of concussions, but isn't showing any symptoms and was held out Thursday as a precaution. ... 3B Miguel Sano (lower left leg) has resumed running, taking ground balls and working in the batting cage. Molitor declined to put a timetable on a possible return.

UP NEXT

Royals RHP Jorge Lopez (2-4, 3.72 ERA), who took a perfect game into the ninth inning last Saturday at Minnesota, will face Twins RHP Jose Berrios (11-11, 3.83) in the second game of the four-game set.