KANSAS CITY, Mo. -- While Danny Duffy extended his winning streak, Aaron Sanchez's winning run came to an end.
Duffy (8-1) limited the Blue Jays to two runs and five hits over 6 2/3 innings, while striking out six and walking two.
"They're a great team," Duffy said. "What has been my best pitch this year, the changeup they were staying on it. When I missed they made me pay. Russell Martin probably hit about a thousand feet with the fly balls today. They're a real good hitting team. You've got to pick and choose your battles. When it's time to bear down, you really need to bear down."
Sanchez (11-2) absorbed the defeat, snapping his personal 10-game winning streak. Sanchez was replaced by Danny Barnes to start the seventh, after giving up four runs on nine hits.
Raul Mondesi's triple to right in the sixth brought home Paulo Orlando, who had two hits, to cap the Royals' scoring.
Toronto's Devon Travis opened the game with a home run for the second straight day. Travis hammered a 2-2 Duffy pitch an estimated 394 feet out to left-center. Duffy had allowed just one hit over eight scoreless innings in his previous start.
"I hit a changeup, up," Travis said. "He made a mistake and, yeah, he didn't make many tonight, but he made a mistake on that pitch and thankfully I was able to get him."
Sanchez did not give up a hit until the fourth inning when Lorenzo Cain and Hosmer hit back-to-back singles with one out. Cain motored to third on Hosmer's ground-ball single to center. Cain promptly stole second with Kendrys Morales at the plate.
Sanchez rebounded to strike out Morales swinging and retired Salvador Perez on a ground ball on the first pitch to strand the runners.
The Blue Jays made it 2-0 in the top of the fifth. Kevin Pillar led off the inning with a double to right and scored on Travis' two-out single on a full-count pitch.
The Royals forged ahead in the bottom of the inning with three runs. Alex Gordon, who was hitting .199, led off with a single. Orlando then had an infield single and Mondesi snapped an 0-for-15 rut with a bunt single to load the bases with nobody out.
Alcides Escobar's infield single off the glove third baseman Josh Donaldson scored Gordon. Hosmer's two-out single scored Mondesi and Escobar. Sanchez burned 24 pitches to survive the inning.
"I don't know if you call that bad luck," Blue Jays manager John Gibbons said of the Royals using three infield hits in the inning. "It was good hitting and team speed. I thought he threw a good ballgame. He really did. They made some things happen in that inning and a perfect bunt. Not just a good bunt, a perfect bunt."
The Royals "exploded" for four runs, the most they've scored in a game since they scored seven on July 27 against the Los Angeles Angels.
"Anytime you keep the team in a game against these guys, it's a blessing," Duffy said. "The fact the offense did a great job was just icing on the cake. I was trying to keep my team in the game and they did the rest."
NOTES: RHP Dillon Gee registered his first quality start Friday since April 27, 2015, but with the Royals off Monday he will be moved back two days in the rotation. His next start will be Aug. 13 at Minnesota. ... The Blue Jays traded Pat Venditte, a rare ambidextrous pitcher, to the Seattle Mariners. Venditte had a 5.19 ERA in eight relief appearances with Toronto before being shipped to Triple-A Buffalo, where he was 2-1 with a 4.35 ERA. ... Josh Donaldson started at third base for the Blue Jays after being struck on the left ear flap by a Kelvin Herrera 92 mph changeup in the ninth inning Friday. Donaldson had some swelling on his left cheek but passed all concussion tests. ... Blue Jays RHP Marcus Stroman and Royals RHP Yordano Ventura are the Sunday probables.