MINNEAPOLIS — The Kansas City Royals fumbled a chance to creep forward in the AL wild-card race after a late lapse by the bullpen.

Kendrys Morales sure did his part, though.

Miguel Sano’s hustle led Minnesota to a pair of early runs and his RBI double tied the game in the decisive seventh inning, helping the Twins dodge a series sweep by beating the Kansas City Royals 6-5 on Wednesday night.

The defending champion Royals stayed four games behind Baltimore, which holds the second wild card. Two of the three teams between them also lost.

“We had a chance to pick up ground,” manager Ned Yost said, “so that definitely hurts.”

Morales had three hits, including his sixth home run in the last eight games, Drew Butera also went deep for the Royals and Danny Duffy struck out 10 batters without a walk over six innings. But after the Twins’ Brian Dozier singled and stole second base to put himself in position to score against Joakim Soria (4-8), Sano doubled off the wall in right field.

“I don’t think he hit it as well as he can hit it, but he muscled that ball to the wall,” Soria said. “He’s a strong guy. He hit it hard.”

Sano ran hard, too.

Sano beat a relay throw in the first inning to stave off a double play after his bouncer back to the mound and later scored on Robbie Grossman’s single. In the fifth, the burly slugger ran fast enough after his routine grounder to be safe when shortstop Alcides Escobar threw high to first for an error. Byron Buxton raced home from second base to score on the play, touching home plate as he hurdled Sano’s bat with a head-first dive to elude Butera’s tag.

Grossman and Buxton each homered for the Twins, who won for only the third time in their last 20 games. Relievers Matt Strahm and Kelvin Herrera followed Soria, each with a hand in the defeat.

“I feel like I’ve got to hand the ball off in the eighth inning,” Duffy said. “I felt like I had that kind of stuff tonight.”

Dozier didn’t hit a home run for Minnesota, ending his club-tying record at five straight games. He did start a dazzling double play to finish the fifth inning, with a diving stop of Eric Hosmer’s grounder and a glove flick to second base to get the ball out while he was flat on the dirt.

Alex Wimmers (1-1) pitched a scoreless seventh in relief of Kyle Gibson to record his first major league victory. Brandon Kintzler gave up Jarrod Dyson’s two-out RBI single before finishing the ninth inning for his 14th save in 16 attempts.

MORALES OF THE STORY

Morales, who also drove in a run with a fourth-inning single, went deep to lead off the sixth. He has a 10-game hitting streak, with 15 RBIs and 17 hits in 42 at-bats for a .405 batting average during the stretch.

“Morales has just been fantastic. Just really fantastic,” Yost said, adding, “We need that. We need a guy like him to carry us, and he sure is right now.”

LESSON NOT LEARNED

Jarrod Dyson and Paulo Orlando started the game with singles, but both were picked off first base with a quick throw by the right-handed Gibson, who had only six pickoffs in 93 previous major league starts.

TRAINER’S ROOM

ROYALS: Butera played behind the plate for Perez, who was out with a bruised right wrist after being hit there by a pitch the night before. Perez could be back in the lineup by Friday.

TWINS: 1B Joe Mauer was given a day to rest his strained quadriceps muscles, an injury that has lingered for the last three weeks.

UP NEXT

ROYALS: After a travel day, Kansas City starts a three-game series on Friday in Chicago. RHP Yordano Ventura (10-9, 4.22 ERA) will take the mound, opposite LHP Carlos Rodon (6-8, 3.90 ERA) of the White Sox.

TWINS: Following an off day at home, Minnesota hosts division-leading Cleveland for three games. RHP Tyler Duffey (8-10, 6.24 ERA) pitches for the Twins, against RHP Danny Salazar (11-6, 3.78 ERA) of the Indians.