Royals manager Buddy Bell said he's noticed improvement in Gordon's approach in the past two days.
"He's starting to get a little bit more agressive," Bell said. "He was getting into kind of a tough pattern where he was swinging at balls and letting strikes go. He's starting to figure out where the plate is."
Gordon, who said he'll give the ball to his younger brother, agreed that he's finding his groove.
"Early on I was chasing a lot of pitches and I wasn't trusting myself," he said. "Now I'm a lot more comfortable out there."
Gordon's blast made a winner out of Zack Greinke (1-1), who worked six solid innings for his first victory of the season. He gave up one run on six hits, walked none and struck out five.
"He did a great job. He had great command," said Bell.
"We're all real happy for him. His issues are well documented and it's nice to see he's doing so well."
Greinke, who pitched in just three games for the Royals last year as he battled depression, said he's more focused this season.
"I have a better mind-set," he said. "I'm just confident and always take the mentality that I'm going to do better than the hitter or that I'm better than the hitter if I make my pitches."
Joakim Soria closed it out by working two perfect innings for his first career save.
"He didn't throw many pitches in the eighth and I just thought, 'Why not?,'" said Bell.
David DeJesus reached three times and scored twice while Tony Pena Jr. and Mark Grudzielanek each had a pair of hits as the Royals banged out a dozen in total.
"We put some hits together for the first time all year, other than our opener," said Bell. "Hopefully that will get some guys off a little bit."
Kansas City built a 2-0 lead with runs in the first and third innings, both scored by DeJesus.
Toronto clawed back in the fifth when Alex Rios' two-out single brought home Jason Smith.
The Royals put the game out of reach in the sixth. Mike Sweeney reached on an error before Gordon hooked a 1-0 pitch over the wall in right for his first Major League home run.
The Royals added two more when Jason LaRue doubled and scored on a triple by Pena -- his fourth in eight games -- and the Royals shortstop scored on a DeJesus single.