MINNEAPOLIS — Kansas City rookie Jorge Lopez came within three outs of a perfect game before Max Kepler walked leading off the ninth inning and Robbie Grossman followed with a single in the Royals' 4-1 win over the Minnesota Twins on Saturday night.
The 25-year-old right-hander made just his seventh big league start, his fifth for Kansas City since he was acquired from Milwaukee in the late-July trade that sent Mike Moustakas to the Brewers.
Lopez (2-4) retired his first 24 batters before walking Kepler on a 3-1 fastball. Grossman followed with a clean single to center field on a 1-2 changeup.
Lopez was removed from the game after 110 pitches, 11 more than his previous high.
Ehire Adrianza hit a sacrifice fly off Wily Peralta, who retired Joe Mauer and Jorge Polanco on flyouts for his ninth save, completing the one-hitter.
Lopez struck out four and went to five three-ball counts before the walk, including his first three batters of the game.
His perfect game bid was preserved when Jorge Polanco's fourth-inning liner was caught by right fielder Jorge Bonifacio with a jump in front of the warning track, and when Jake Cave's liner was snagged by left fielder Alex Gordon with a sliding grab in the fifth.
Lopez made his big league debut with the Brewers in 2015, when he made a pair of late-season starts. He spent most of the next two years in the minors, making one relief appearance for Milwaukee in July 2017. Lopez had 10 appearances for the Brewers this year, all in relief, and entered 1-3 with a 5.66 ERA for the Royals.
Lopez was trying to become the second pitcher since at least 1900 to throw a perfect game in his first 10 major league starts. Charles Robertson was perfect in his fourth start with the Chicago White Sox in 1922.
Kansas City has never thrown a perfect game and there have not been any in the major leagues since Seattle's Felix Hernandez threw the 23rd all-time, against Tampa Bay on Aug. 15, 2012. The gap between perfect games is the longest since Catfish Hunter's for Oakland against the Twins in 1968 and Len Barker's for Cleveland versus Toronto in 1981.
Bret Saberhagen pitched Kansas City's most recent no-hitter, against the Chicago White Sox in 1991.
There have been three no-hitters in the majors this year, by Oakland's Sean Manaea, Seattle's James Paxton and a combined effort by four Los Angeles Dodgers pitchers.
Hunter Dozier hit an RBI single in the sixth off Jose Berrios (11-11), who gave up one run and three hits in six innings. Whit Merrifield had a run-scoring single in a three-run seventh off Tyler Duffey and scored on Adalberto Mondesi's double. Gordon added an RBI single against Andrew Vasquez.
Twins right-hander Ervin Santana might miss the rest of the season while receiving a series of platelet-rich plasma injections in the middle finger of his pitching hand. Santana is 0-1 with an 8.03 ERA in five major league starts this season.
Santana had surgery Feb. 6 to remove a calcium deposit on the finger. He made his first minor league injury rehabilitation appearance May 23 and didn't make his season debut for the Twins until July 25. The two-time All-Star was still bothered by the finger and after five starts returned to the disabled list on Aug. 19.
"I'm not really sure if the timing of when he picks up a ball will matter nearly as much as his ability to try to get through the winter and put himself in position to pitch again next spring," Minnesota manager Paul Molitor said.
Twins: An MRI cleared 3B Miguel Sano of any issues with his sore leg stemming from a slide into second base last week. Molitor hopes Sano could be ready to return in the next couple of days. ... 1B-DH Tyler Austin (back) is out for the weekend series, but Molitor hopes the former Yankees prospect is able to return next week when New York comes to town. "Maybe the Yankees will be a little bit of motivation for him," Molitor said.
Royals: RHP Ian Kennedy (1-8, 5.13 ERA) will be activated off the disabled list to start Sunday's series finale. Kennedy has been out since July 10 with a left oblique strain.
Twins: RHP Chase De Jong will make his first major league start of 2018 and his first for Minnesota since he was acquired from Seattle on July 30 in a trade that sent left-handed reliever Zach Duke to the Mariners. De Jong was 0-3 with a 6.35 ERA in seven games for Seattle in 2017.