Ryan (5-2) allowed one run on five hits in 5 2/3 innings with six strikeouts.
“It was a good game overall,” Ryan said. “The boys brought good run support, which takes a lot of pressure off.”
Minnesota had a pair of two-run innings and was ahead going into the ninth, when the offense erupted — including two-run double by Carlos Correa. The top six batters in the Twins lineup all collected RBI in the win, and Minnesota’s Luis Arráez had two RBI and scored on a wild pitch.
“I thought we battled through the beginning of the game, but we stayed on them and but some good swings on the ball,” Twins manager Rocco Baldelli said. “Overall, it was a great offensive effort and just what we were looking for.”
Brad Keller (1-4) tossed seven innings for the Royals, giving up four runs on five hits with four strikeouts and three walks. He also notched his 400th career strikeout in the sixth inning.
Royals manager Mike Matheny said Keller "made really good pitches all evening long and pitched well enough to give us a chance to win.”
Kansas City entered the game batting .154 with bases loaded and came up empty in its lone opportunity in the sixth, trailing 4-1 at the time. The Royals left eight on base overall.
Twins: Selected the contract of LHP Trevor Megill from Triple-A St. Paul and optioned LHP Devin Smeltzer to Triple-A. Minnesota also designated RHP Chris Vallimont for assignment.
Twins: Placed RHP Josh Winder (right shoulder impingement) on the 15-day injured list and activated Bailey Ober from the ten-day IL.
Bailey Ober (1-1, 2.75) is scheduled to start for Minnesota in the series finale on Sunday afternoon. Kansas City had not announced a starter as of Saturday night.
Former No. 1 pick Mark Appel, 30, gets big league call-up from Philadelphia Phillies
Mark Appel, the 2013 No. 1 overall pick whose baseball career included a three-season absence from the sport, is getting his first major league call-up at the age of 30.
Fantasy baseball pitcher rankings, lineup advice for Saturday's MLB games
Everything you need to know to place your MLB bets and set your fantasy baseball lineups for Saturday, June 25.
Giants aim to break 3-game losing streak, play the Reds
Cincinnati Reds (24-46, fifth in the NL Central) vs. San Francisco Giants (38-32, third in the NL West)
Ashcraft goes 8, Reds beat Giants 4-2 to halt 7-game skid
— Rookie right-hander Graham Ashcraft bounced back from two poor starts, pitching a career-high eight innings to help the Cincinnati Reds stop their seven-game losing streak Friday night with a 4-2 victory over the San Francisco Giants.
New York Mets and Miami Marlins play in game 2 of series
New York Mets (46-26, first in the NL East) vs. Miami Marlins (32-37, fourth in the NL East)
White Sox host the Orioles on 3-game home skid
Baltimore Orioles (33-39, fifth in the AL East) vs. Chicago White Sox (33-36, third in the AL Central)