"Absolutely horrible game on my part 'til the 10th inning," said Gordon, who was 0-for-3 on Wednesday before the home run. "Luckily, I was able to help the team out. It felt good."
Gordon drove a 1-0 pitch from Scott Downs (0-1) to center with two out in the 10th, disappointing the crowd of 15,577. It was just the second hit of the season for Gordon, who returned to the lineup Saturday after missing the first 10 games with a broken right thumb.
Before the 10th, there hadn't been much to get excited about for Gordon.
"It was terrible," Gordon said. "I was swinging and missing. I had no bounce at the plate. I made an error. It felt good to put one into the seats in extra innings."
Wednesday was the first time Gordon played without a protective cast on his thumb, which he injured sliding headfirst into second base during a spring training game March 6.
Royals catcher Jason Kendall was pleased to see Gordon display some "unbelievable pop."
"You can tell things are starting to click for him a little bit and he's getting that timing back down," Kendall said. "That was a big-time hit by a big-time player."
"It would have put a real bad taste in our mouths if we hadn't found a way to come back and get that win," Royals manager Trey Hillman said.
Zack Greinke remained winless despite pitching seven sharp innings, a season high, allowing two runs and two hits while striking out eight. Greinke handed a 3-2 lead over to the Royals' beleaguered bullpen, which cost him once again.
"He's had some tough luck," Kendall said. "He's 0-2, and he probably should be three and something."
Greinke wasn't too concerned about failing to pick up his first victory.
"It doesn't really matter," Greinke said. "You just do what you do. I finally went deep into the game so that was exciting."
Josh Rupe started the eighth and gave up a leadoff single to Jose Molina, who was replaced by pinch-runner Mike McCoy. John McDonald sacrificed McCoy to second before John Parrish came on to face Fred Lewis, who lined an RBI single off the glove of second baseman Alberto Callaspo.
Lewis stole second base, but Parrish struck out Gonzalez and Adam Lind grounded out to end the threat.
Kansas City jumped on the Blue Jays' Shaun Marcum in the first. Scott Podsednik hit a one-out single and went to third on Billy Butler's double before Guillen homered to left, his sixth of the season.
Marcum allowed three runs and six hits in seven innings, walked one and struck out six.
"We got to Marcum early but he had good stuff," Hillman said. "After the first inning, he didn't leave too many pitches out over the plate."
Greinke, the defending AL Cy Young winner, had one of his worst starts of last season in Toronto, allowing seven runs and nine hits in five innings during a 9-3 loss June 5. The right-hander came in 1-4 with a 7.07 ERA in five starts at Rogers Centre.
"I gave up six or eight earned runs and it should have been 15, they were hitting the ball so hard," Greinke said of that start. "It was nice to not see line drives going off everywhere."
He didn't allow a hit through the first three innings and erased his only baserunner with a double play. But Greinke hit Lewis to begin the third and then gave up the two-run homer to Gonzalez, his fifth of the year.
Toronto placed left-hander Brian Tallet (forearm) on the 15-day DL, retroactive to April 18, and placed third baseman Edwin Encarnacion (shoulder) on the 15-day DL, retroactive to April 15. The Blue Jays recalled left-hander Brett Cecil from Triple-A Las Vegas to start Friday at Tampa Bay, while second baseman Aaron Hill (right hamstring) will come off the DL on Friday. ... Kendall reached on a bunt single in the seventh, extending his hitting streak to 14 games. ... Podsednik returned to the lineup after missing two games because of a family emergency. He was caught stealing in the sixth, the first time he's been thrown out this season. ... Royals right-hander Roman Colon, who was designated for assignment, cleared waivers and will be sent to Triple-A Omaha.