The Royals have lost eight in a row and dropped all seven of their home games this season, their worst home start in franchise history.
Toronto's victory was highlighted by the team's first triple play in 32 years, coming in the third after the Royals had put their first two runners on base.
The first three Kansas City pitchers held Toronto to a run on two hits through seven innings and the Royals owned a 2-1 lead heading into the eighth. The first five Blue Jays then reached base against Greg Holland (0-2) while Toronto was taking the lead.
Colby Rasmus doubled to open the eighth and promptly scored on a single by J.P. Arencibia. After Yunel Escobar walked, both runners moved up on a Holland balk and Kelly Johnson was walked intentionally to load the bases.
Bautista followed with a single to drive in the go-ahead run. A fielder's choice grounder off the bat of Adam Lind resulted in an out at home, but a sacrifice fly from Edwin Encarnacion brought in the third run of the inning.
The Toronto triple play came with Kansas City runners on first and second. Lind caught Eric Hosmer's liner just off the ground at first, tagged the runner trying to get back to the bag and then threw to second before Alex Gordon could get back to that base.
Putin thinks Obama would save him if he were drowning
Rosie O'Donnell unveils nearly 50-pound weight loss