KANSAS CITY -- Eddie Rosario homered and drove in four runs, while Eduardo Escobar added three hits, including a solo homer, as the Twins hung on for an 8-5 win over the Royals to extend their winning streak to three games on Friday night at Kauffman Stadium.
Minnesota leads the Angels by two games for the second American League Wild Card spot, while the loss dropped the Royals 4 1/2 back.
"There were a lot of momentum changes," Twins manager Paul Molitor said. "Credit to the Royals for their fight, inching closer. So we had to fight. We had a lot of guys contribute with good at-bats, especially late, and the bullpen did a nice job. All-around, we had to do a lot of things to win that game even after such a great start."
Royals right-hander Ian Kennedy continued his struggles, allowing three runs on four hits and three walks over three innings. It extended his winless streak at home to 18 starts. Kennedy allowed a run in all three innings, giving up a sacrifice fly to Escobar in the first, an RBI single to James Dozier in the second and a homer to Rosario in the third.
Kennedy left after throwing just 55 pitches and said afterward he has been dealing with shoulder tightness. He is not sure he'll make his next start.
"I have no idea," Kennedy said. "We're going to talk about it and figure it out, maybe let you know a couple days from now."
Twins right-hander Ervin Santana lasted five innings, allowing four runs on five hits. He was staked to a 5-1 lead in the fourth, but he gave up a solo homer to Eric Hosmer that inning and a two-run double to Whit Merrifield in the fifth before being helped out with a run-saving catch by Byron Buxton in center.
"Nice play, he's a good center fielder," Merrifield said. "I thought it was out when Melky hit it, but it's a big yard. It was a nice play by him, but it would have been nice for him not to catch it."
The Royals made it a one-run game after three straight singles to open the seventh, but reliever Trevor Hildenberger came in and induced a big double play to quell the rally. The Twins added two insurance runs against right-hander Kelvin Herrera in the eighth on a triple from Robbie Grossman and a double from Joe Mauer.
MOMENTS THAT MATTERED
Buxton robs Cabrera: The Royals got back into the game with Merrifield's two-run double in the fifth, and it looked they were going to cut even deeper into the Twins' lead before Buxton made another incredible catch. Melky Cabrera drilled a deep drive into center, but Buxton was able to track it down at the wall to save a run and end the inning. Buxton had 6.0 seconds to cover 115 feet, according to Statcast™. He reached a max speed of 29.1 feet per second.
"That's the wrong guy you want in the outfield on a ball hit like that," Royals manager Ned Yost lamented. "He's going to run it down."
"It was amazing," Santana said. "He came up big when we needed it."
Rosario provides insurance: After his sacrifice fly in his first at-bat and his homer in his second at-bat, Rosario came to the plate with the bases loaded and two out in the fourth. Rosario smacked a 2-1 changeup from reliever Trevor Cahill up the middle to bring home two runs and give the Twins a four-run lead.
"Rosie had a big night," Molitor said. "His homer, he really clicked on that, but his grounder up the middle was like the ball in Tampa but they didn't have anybody standing there, which is a good thing. You have to add on whenever you can."
"Nobody expected us to be in this position right now so we have nothing to lose. We're just playing baseball and everything is going well. We just have to keep playing like we've been playing and not try to do too much." -- Santana
SOUND SMART WITH YOUR FRIENDS
With his RBI double in the eighth, Mauer passed Justin Morneau on the Twins' all-time RBIs list, moving into fifth place with 861.
Twins: Right-hander Jose Berrios (12-7, 4.01 ERA) is set to start against the Royals at 6:15 p.m. CT on Saturday as the Twins continue the playoff push at Kauffman Stadium. Berrios struggled last time out, allowing five runs in five innings in a loss to the Rays.
Royals: Right-hander Jakob Junis (7-2, 4.48) will start for Royals on Saturday in the third game of this crucial series against the Twins. Junis gave up three runs over five innings in a 7-6 win over the Tigers on Monday.
Watch every out-of-market regular-season game live on MLB.TV.