Zach Eflin became the majors’ first pitcher with two complete games this season, lifting the Philadelphia Phillies over the Kansas City Royals 7-0 Saturday night.

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.

Odubel Herrera doubled and tripled, and Andrew McCutchen and Rhys Hoskins each drove in two for Philadelphia. The Phillies worked seven walks, with every starter reaching base at least once.

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.

Adalberto Mondesi stole his 13th base of the season and third over his last two games, breaking a tie with Tim Anderson of the Chicago White Sox for most in the majors.