Peter Aiken-USA TODAY Sports

Joey Gallo hit two homers and drove in four runs, and Minnesota right-hander Joe Ryan continued his mastery of the Kansas City Royals as the visiting Twins swept the three-game series with a 7-4 win on Sunday afternoon.

Ryan went six innings in improving to 5-0 with an ERA of 1.20 in 30 innings in his career against the Royals. He allowed one run on three hits and two walks, and struck out six in his first start of the season.

Gallo also doubled and scored three times, and Ryan Jeffers added a pair of two-out, RBI singles for the Twins.

Kansas City right-hander Brad Keller took the loss in his season debut, surrendering two runs on five hits and four walks in 4 2/3 innings. He hit a batter and struck out six.

Keller got the first two batters in the fifth but left after he walked the bases loaded. Left-hander Amir Garrett came on to get right-handed pinch hitter Kyle Farmer to end the inning and keep the Twins' lead at 2-1. Keller fell to 3-6 in his career against the Twins.

Garrett then allowed Gallo's solo homer in the sixth, and Gallo launched a three-run shot off Dylan Coleman in the seventh.

The Royals, who lost the first two games of the series by identical 2-0 scores, finally got on the board when Edward Olivares hit a solo blast in the second inning. Matt Duffy hit a two-run bomb off reliever Jovani Moran in the seventh.

Minnesota, which finished with 13 hits, scored single runs in the second and fourth innings on Jeffers' hits. Trevor Larnach had three hits, a run and an RBI hit in the eighth for the Twins, and Byron Buxton had two hits.

The Royals had six hits overall, including two each by Olivares and Duffy.

With Kansas City trailing 2-1 in the fourth inning, the Royals' Salvador Perez hit a leadoff double. But Ryan got a strikeout and two groundouts to preserve the lead.

The Royals were 1-for-6 with runners in scoring position and 1-for-20 in the series. That one hit came in the ninth inning on Sunday on a single by Olivares after Michael Massey doubled.

More must-reads:

TODAY'S BEST
Xander Schauffele tops stacked leaderboard after first round of Wells Fargo Championship
Rangers center making long-awaited return in Game 3 vs. Hurricanes
Suns talks with head-coaching target 'expected to move quickly'
Knicks get even more bad injury news ahead of Game 3
Frank Vogel fell victim to a Suns ownership group eager to win
2008 Celtics champion sentenced to prison despite emotional plea
Skip Bayless makes huge Tom Brady prediction after Netflix roast
14-year-old phenom signs unprecedented MLS deal that includes future Man City transfer
Pacers coach claims officials are biased against 'small market' teams
Hall of Famer makes bold prediction about Russell Wilson, Steelers
49ers Hall of Fame CB Jimmy Johnson dies
Rams make surprising move with former team captain
NBA announces discipline for Bucks' Patrick Beverley
Hall of Fame RB defends Najee Harris after Steelers decline fifth-year option
Pacers file shocking number of questionable calls after Game 2 loss vs. Knicks
Former NBA star says Anthony Edwards becomes face of the NBA if Wolves knock off Nuggets
Hornets hire top Celtics assistant as next head coach
Maple Leafs fire HC Sheldon Keefe after another early playoff exit
Super Bowl champion discusses why Russell Wilson failed with Broncos
Colts LB Zaire Franklin calls out Texans, C.J. Stroud