Punchless Royals swept by Toronto

? Right now, offensive production is at a premium for the Kansas City Royals.

Michael Saunders hit a solo home run in the fourth inning and singled home the winning run in the eighth as Toronto completed a three-game sweep of Kansas City, beating the Royals 4-2 on Wednesday night.

The Royals have dropped four straight, scoring nine runs in that span.

“Offensively, there’s just not much going on right now with us,” manager Ned Yost said.

Kansas City struggled against Blue Jays right-hander Marcus Stroman, who allowed two runs and three hits in eight innings to win for the first time in four starts.

“That’s as good as you’re ever going to see him,” manager John Gibbons said. “He had everything working.”

It was the third straight strong outing by a Blue Jays starter. Aaron Sanchez allowed one run in eight innings to beat the Royals on Monday, and R.A. Dickey allowed two runs, none earned, in seven innings to win Tuesday.

“Three tough outings that we saw from their guys,” Kansas City’s Eric Hosmer said. “They did a good job of pumping strikes and mixing both sides of the plate. They had a pretty good game plan coming in against us, and they definitely executed it.”

Roberto Osuna finished for his 17th save as Toronto won its season-high fifth straight.

One of five AL candidates for the Final Vote, Saunders opened the scoring with a one-out drive off Ian Kennedy in the fourth, his 16th.

“He did a pretty good job of hitting that one,” Kennedy said. “He’s seeing the ball really well. That’s the reason he’s on the Final Vote. He’s having a good year.”

Edwin Encarnacion hit a two-out double off Kelvin Herrera (1-2) in the eighth and scored when Saunders lined a single to center. Russell Martin followed with an RBI double.

Saunders raised his average to .296. He has three home runs shy of his career-high, set with Seattle in 2012.

“He’s had a tremendous year,” Gibbons said.

Stroman was perfect through five innings, throwing 44 pitches. Kansas City didn’t hit a ball out of the infield until Paulo Orlando flied to center to end the fifth.

Brett Eibner broke Stroman’s streak when he walked on a 3-2 pitch to begin the sixth. The next batter, Alcides Escobar, broke up the no-hitter and ended Stroman’s shutout bid with an RBI triple.

Toronto led 2-1 on Ezequiel Carrera’s RBI single in the fifth, but Eibner tied it 2-all when he connected off Stroman in the eighth.

Kennedy allowed two runs and four hits in six innings. He walked one and struck out 10, one shy of his season high.

WHOLE LOTTA LONG BALLS

Opponents have hit 21 home runs off Kennedy this season, tied for second-most in the majors. He’s surrendered at least one homer in seven consecutive starts, giving up 13 in that span.

DOME DEVELOPMENTS

The retractable roof was open when the game began but started to close during the top of the sixth. It was still sliding shut when a light rain began falling in the bottom of the seventh. Play was not interrupted.

TRAINER’S ROOM

Royals: DH Kendrys Morales (back) was held out of the starting lineup.

Blue Jays: RHP Marco Estrada was placed on the 15-day DL, one day after being named to the All-Star team for the first time. Estrada will still attend the game in San Diego but won’t be able to pitch. … RHP Drew Hutchison will start for Toronto in the opener of a four-game series against Detroit on Thursday. … RHP Bo Schultz was recalled from Triple-A Buffalo.

UP NEXT

Royals: LHP Danny Duffy (4-1, 3.11) starts as Kansas City returns home for a four-game series against Seattle. He’s 0-1 with a 1.69 ERA in five games against the Mariners, including three starts. LHP James Paxton (2-3, 4.24) starts for Seattle.

Blue Jays: Hutchison is 1-0 with a 5.40 ERA in two games, one start. He went 6-3 with a 2.78 ERA in 15 starts at Buffalo. RHP Justin Verlander (8-6, 4.11) starts for Detroit.