Eflin became the majors' first pitcher with two complete games this season, lifting Philadelphia over the Kansas City Royals 7-0 Saturday night.
Knapp has caught Eflin's last three starts, and the 25-year-old right-hander has rolled right through them. He pitched nine innings of one-run ball two starts ago against Miami, then delivered seven innings of one-run ball last time out against Washington.
Now, this gem, Eflin's second career shutout and first since July 22, 2016 in his eighth major league start.
"I will say this, if he throws complete-game shutouts, I will not not have Knapp catch him the next time out," Kapler said.
Eflin (5-3) allowed four hits, struck out seven and walked none while throwing 110 pitches.
"There's so many guys that pitch away from contact in this game," Kapler said. "He's fearless. He's attacking the zone with all of his pitches."
Knapp and Eflin have played together since Double-A in 2015 and developed a strong chemistry.
"I think it goes a long way when a guy trusts his catcher the way Zach trusts me and that didn't come all at once," Knapp said. "That's been a long time coming with a lot of games played together, but we're definitely on the same page. All I'm doing is calling the pitches. He's the one executing it, so all the credit goes to him."
"He knows what I'm best at, probably moreso than I do," Eflin said.
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.
"I was yanking my head and pulling off pitches," Keller said. "We had a really good game plan going in. We didn't execute it the way we wanted to."
It was Keller's eighth consecutive start with at least three walks.
"He's fighting his mechanics, which in turn leads to him fighting his command," Royals manager Ned Yost said. "Walks hurt him, especially walks to the bottom-of-the-order guys. He's battling through it."
The top four batters in the Royals lineup each had one hit off Eflin, while the bottom five went 0 for 14.
"He hit a lot of corners. He was getting a little bit off the corners, too," Royals infielder Whit Merrifield said. "But when you're pounding the zone, you tend to get those good pitcher's pitches. He mixed it up enough. He didn't throw it over the white a whole lot. When you mix that with good stuff it's hard to hit."
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.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports
Reds look to end 4-game losing streak against Twins
Cincinnati Reds (35-35, fourth in the NL Central) vs. Minnesota Twins (30-41, fourth in the AL Central)
Diamondbacks look to break 17-game losing streak against Brewers
Milwaukee Brewers (40-32, second in the NL Central) vs. Arizona Diamondbacks (20-53, fifth in the NL West)
Darvish expected to start for San Diego against Los Angeles
Los Angeles Dodgers (44-27, second in the NL West) vs. San Diego Padres (42-32, third in the NL West)
Rangers look to end 6-game losing streak against Athletics
Oakland Athletics (44-29, second in the AL West) vs. Texas Rangers (25-46, fifth in the AL West)
Civale scheduled to start for Cleveland against Chicago
Cleveland Indians (39-30, second in the AL Central) vs. Chicago Cubs (40-32, first in the NL Central)
Anderson expected to start for the Braves against Mets
Atlanta Braves (33-36, third in the NL East) vs. New York Mets (36-29, first in the NL East)