Eflin (5-3) finished his second career shutout, the other coming July 22, 2016 in his eighth major league start. He allowed four hits, struck out seven and walked none while throwing 110 pitches.
The 25-year-old right-hander has been on a roll. He pitched nine innings of one-run ball two starts ago against Miami and delivered seven innings of one-run ball last time out against Washington.
Brad Keller (2-4) struggled with his command again, an issue that has plagued him all season. Keller walked four, hit one and threw a wild pitch in five-plus innings. The Phillies turned those free passes into six runs despite just five hits.
It was Keller's eighth consecutive start with at least three walks.
The top four batters in the Royals lineup each had one hit off Eflin, while the bottom five went 0 for 14.
Phillies: Philadelphia placed RHP Vince Velasquez (right forearm strain) on the injured list, retroactive to May 8. ... The Phillies recalled LHP Austin Davis from Triple-A Lehigh Valley. Davis made his only major league appearance this season on April 21, throwing two scoreless innings against the Colorado Rockies.
Royals: RHP Jakob Junis (3-3, 5.52 ERA) will start the series finale Sunday. Junis is coming off a 6-4 loss to Houston where he gave up three home runs and a season-high nine hits in 5 1/3 innings of work.
Phillies: LHP Cole Irvin is expected to make his major league debut Sunday. Irvin is 2-0 with a 2.25 ERA in six starts this season for Triple-A Lehigh Valley.