KANSAS CITY -- Royals rookie right-hander Brad Keller was jolted by a home run from the second hitter of the game, Devon Travis.
Keller, though, shook that off and pitched his best game in over two months, throwing seven innings of four-hit, one-run ball in the Royals' 3-1 win over the Blue Jays on Monday night at Kauffman Stadium.
Closer Wily Peralta picked up his seventh save in as many opportunities.
"I thought I made a good pitch [to Travis]," Keller said. "The pitch before, he shattered his bat. I made the same pitch, and he swung his barrel around and got it.
"I think early on, I was falling behind guys. Later on, I was really trying to attack."
Keller's last outing that was this dominant was on July 1, when he held the Mariners to one run over eight innings.
Keller walked two and struck out four while improving his record to 5-5. He was helped by some superb defense -- left fielder Alex Gordon threw a runner out at the plate, and catcher Salvador Perez threw out a runner trying to steal second base. The Royals also turned a 6-5-3 double play while in an extreme shift.
"[Keller] just did an awesome job," manager Ned Yost said. "Got better as the game went on."
Another rookie, designated hitter Ryan O'Hearn, provided the offense. O'Hearn went the opposite way for a two-run home run in the second inning on a first-pitch four-seam fastball from right-hander Sean Reid-Foley, who was making his Major League debut. It was O'Hearn's second home run -- his first came on July 31 during his Major League debut in Chicago.
"That [opposite-field power] is something that's kind of gotten me here," O'Hearn said. "I'd like to think I can pull a ball, hit it to center, and go anywhere. That's definitely something that's been one of my strengths."
O'Hearn also drove in a run with a bases-loaded walk, while Whit Merrifield added three hits for the Royals.
"That was a good [plate appearance] for me," O'Hearn said. "That guy has good stuff. Just to be able to battle through that and kind of get that extra run that we needed at the end there was great. With the bases loaded, less than two outs, it's always a high-pressure situation so just to kind of be able to relax and just have a quality at-bat is huge for me and my confidence."
After nailing Randal Grichuk trying to steal second base in the fourth inning, Perez now has thrown out 19 of 37 (51 percent) would-be basestealers, the best percentage in MLB.
"It doesn't seem like it's anything abnormal to me," Yost said of Perez. "Last year, he struggled throwing guys out and it wasn't him. We struggled holding guys on. This year it has been a focus, to give him shots. If you do, he will throw guys out."
YOU GOTTA SEE THIS
Gordon threw out Russell Martin at home trying to score on Danny Jansen's first MLB single in the second inning. It was Gordon's ninth assist this season and the 91st of his career, the latter is the most of any MLB outfielder since 2010. Statcast™ recorded the throw at 91.1 mph.
"That was an unbelievable throw," Keller said. "He's done it all year. He's got such a great arm."
Added Yost, "You're daring them to run. I'm pleased when they do. This is the big leagues. You have to challenge guys and they do with Alex."
Royals right-hander Heath Fillmyer (1-1, 3.13 ERA) will start the second game of the series against the Blue Jays at 7:15 p.m. CT on Tuesday at Kauffman Stadium. Lefty Ryan Borucki (2-2, 2.81) will start for Toronto. Fillmyer, who will be making his sixth start, got his first MLB win on Wednesday in a 9-0 victory over the Cubs.