One game into the regular season's final month, he's off to an excellent start.
"It just seems like he's getting stronger and stronger as the year goes on," manager Ned Yost said of Shields, who went 4-1 in August.
The Royals, who entered play 6 1/2 games behind Tampa Bay in the race for the second AL wild-card berth, won for the sixth time in eight games.
"We're fighting right now," Shields said. "Today was a big game."
Twelve of Kansas City's final 26 games are against Cleveland and Detroit, the two teams ahead of them in the AL Central.
Shields, who played on the Tampa Bay team that overturned a nine-game deficit in the final month to reach the 2011 playoffs, understands that "anything can happen."
"We've got a lot of games against Detroit, we've got a lot of games against Cleveland left," Shields said. "We've got some room to catch up."
Outfielder Jarrod Dyson said the Royals remain confident that a postseason spot is within their grasp.
"We're still pushing for it," Dyson said. "We're not going to let up. We're going to give it all we've got."
Hosmer had two hits and two RBIs. It was his 51st multihit game of the season, tying him with five other players for the major league lead.
Former Blue Jays infielder Emilio Bonifacio had two hits, scored twice and stole two bases for the Royals. He's 11 for 11 in stolen base attempts since joining Kansas City on Aug. 14.
Shields (10-8) improved to 4-0 with a 1.53 ERA in his past five starts. The right-hander walked one and matched a season-high with nine strikeouts.
"I was mixing my pitches up as well as I can and trying to keep them off balance," Shields said.
In shutting down the Blue Jays, Shields also extended his recent run of road success. He's 7-0 with a 1.71 ERA in his past eight starts away from home, and 8-3 with a 2.11 ERA in 16 total road outings.
"He's always tough," Toronto shortstop Jose Reyes said of Shields. "He's one of the best pitchers in the game. When his team scores some runs early, he's going to get tougher and tougher."
Kansas City took the lead in the first when Bonifacio walked, stole second, went to third on catcher J.P. Arencibia's throwing error and scored on Eric Hosmer's grounder.
The Royals benefited from an interference call in a four-run, bat-around third. Dyson led off with a single and stole second, but appeared to be caught in a rundown after trying to advance on Alcides Escobar's grounder. But Reyes was called for interference after Dyson ran into him.
"I wasn't going to stop right there and just let him tag me because he was in my way," Dyson said.
Even though Dyson was initially ruled out, Reyes said he was waiting for another ump to overturn the call.
"Kind of a tough day," Reyes said. "I didn't mean to do that."
The call putting runners at the corners for Alex Gordon, who hit an RBI single. Bonifacio followed with an RBI single and stole second before Hosmer hit a two-run single to right.
"It was a play that helped us break that inning open a little bit," Yost said of Dyson's escape. "It worked out great."
Blue Jays left-hander J.A. Happ (3-5) lost his third straight start, allowing five runs, three earned, and six hits in four innings. He walked one and struck out three.
"He was kind of in and out of the zone a little bit," Blue Jays manager John Gibbons said. "It's a consistency thing."
Toronto second baseman Ryan Goins went 0 for 4 with two strikeouts, snapping an eight-game hitting streak to start his career.
Kansas City recalled LHP Francisley Bueno from Triple-A Omaha and selected C Brett Hayes from Triple-A. ... The Blue Jays activated All-Star RHP Steve Delabar (shoulder) and RHP Dustin McGowan (strained right oblique) off the 15-day DL. ... Toronto was shut out for the eighth time. ... The roof was open when the game began but started to close in the top of the ninth.