The right-hander came within three outs of perfection before Max Kepler walked leading off the ninth and Robbie Grossman followed with a single in Kansas City's 4-1 win over the Minnesota Twins on Saturday night.
"I was so close and I think my heart accelerated a little bit," Lopez said.
The 25-year-old 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 then smacked a clean single to center field on a 1-2 changeup.
"It was the first time he had to go to the stretch the whole game," Grossman said. "He made some quality pitches against me. I just got enough of the last changeup and hit it up the middle, and luckily missed his glove."
Lopez was removed after 110 pitches, 11 more than his previous high.
Lopez struck out four and went to five three-ball counts before the walk, including his first three batters of the game.
"Last inning was when I got all the emotion," Lopez said. "I should have not thought about it, like, `Let's just get another inning.' But that's experience from what we learned, and next time it will help get another win for the team."
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.
"Gordy saw the ball, looked at (center fielder Brian) Goodwin and looked back up and couldn't find the ball," Royals manager Ned Yost said. "He was like, `I'm just going to run and hope I find it again,' and he did and made the catch. When he told me that I was like, `OK, this might be one of those nights."
Lopez was trying to become the second pitcher since at least 1900 to throw a perfect game within 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 haven't been any in the majors since Seattle's Felix Hernandez threw the 23rd in history, 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 major leagues this year, by Oakland's Sean Manaea, Seattle's James Paxton and a combined effort by four Los Angeles Dodgers pitchers.
"I just sat there; I didn't want to move," Yost said. "My heart started pounding I think in about the eighth inning. When we scored those runs it made me feel better. Really wanted to get the fifth run there to try and give us a little more leeway in that situation going into the ninth."
RUNNING OUT OF TIME
Minnesota moved closer to elimination from the AL Central race. Cleveland's magic number is five for clinching a third consecutive division crown.
BERRIOS BOUNCES BACK
Berrios was winless with a 6.56 ERA in his previous five starts, with 13 walks in 21 2/3 innings. After making his first career All-Star appearance, the right-hander had gone 2/3 with a 4.69 ERA in eight starts since the break. "We talked about the mental aspect of the game and I thought he was in a good place," Minnesota manager Paul Molitor said. "I thought he was in attack mode for the most part."
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 from 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.
Rosario hits 4th dinger of spring
Eddie Rosario takes Nathan Eovaldi deep in the first inning for his 4th home run of the spring.
Myers cracks 1st HR of spring
Wil Myers smacks his first home run of spring training off Trevor Bauer in the bottom of the first inning.
Story goes deep for 4th home run
Trevor Story takes Raisel Iglesias yard in the 5th inning for his 4th dinger of the spring.
Ichiro still has his cannon right arm
Ichiro Suzuki shows off his arm by throwing the ball from right field directly to third base.
Sources: MLB eyes higher salaries in minors
Major League Baseball is talking to representatives of the minor league system about higher salaries and better working conditions.
Conforto smacks 2-run HR to left
Michael Conforto bashes a 2-run home run to right.