The hot-hitting Gordon drove home Chris Getz with a single in the ninth inning, and the Royals beat the Blue Jays 3-2 on Sunday to avoid a three-game sweep.
"Erv gave us a chance and we just persevered at the end," said Gordon, who extended his hitting streak to 11 games with a pair of base hits. "It felt good."
Santana pitched eight sharp innings, and Kelvin Herrera (1-0) kept the Blue Jays off the board in the ninth. Toronto brought in Darren Oliver to face three straight left-handed hitters, even though left-handed bats have been 5 for 8 against the reliever this season.
Oliver (0-1) retired Jarrod Dyson to start the ninth, but Getz doubled to right to bring up Gordon, whose single allowed Getz to slide home easily in front of the tag.
"To get a win like that, a walkoff, it's a nice boost of energy," Getz said. "You don't want to get swept, so to scratch out a game like that is nice."
Edwin Encarnacion homered and drove in both runs for the Blue Jays, who had won six straight and eight of 10 against the Royals at Kauffman Stadium. That included a four-game sweep in their only series in Kansas City last season.
"They're scrappy. They battle you," Blue Jays manager John Gibbons said. "The thing that stands out is their defense. They take away hits. In tight ball games, that makes a difference."
The Blue Jays struck in the first inning when Melky Cabrera and Jose Bautista delivered back-to-back base hits. Dyson bobbled Bautista's routine single in center, and that sent Cabrera to third base. He scored moments later on Encarnacion's groundout.
Dyson atoned for his miscue with a leadoff triple in the third inning. After Gordon extended his hitting streak a check-swing single that went about 15 feet, Escobar hit a deep sacrifice fly to right field that knotted the game 1-all.
Encarnacion, who'd been 5 for 44 on the season, gave Toronto the lead back in the sixth. He sent the first pitch of the inning skimming over the wall in left field for a homer.
"That's huge," Gibbons said. "That's a good sign for Eddie."
Kansas City matched him in the bottom half, though, when Billy Butler sent a blooper to right field, reached second on a two-out single by Eric Hosmer, and then managed to chug home on Cain's base hit to left field -- the big DH looked as if he needed oxygen when he got back to the dugout.
The fact that the game was 2-all at that point was a testament to some nice defense.
And some fairly clutch pitching.
Toronto's Brandon Morrow allowed just the two runs in six innings, at one point retiring eight straight batters. He struck out three and only issued an intentional watch.
"I didn't have my best stuff," he said, "but I made a lot of good pitches and kept us in it."
So did Santana, who put the leadoff runner aboard in the second and third innings but got some help from a pair of inning-ending double-plays. Santana also left two stranded in the fifth, thanks to a nice play by Dyson of tracking down Emilio Bonifacio's fly ball in center field.
His greatest Houdini act may have come in the eighth, when Santana walked Encarnacion to put runners on first and second with two outs. He struck out J.P. Arencibia to escape the inning.
That gave Getz and Gordon the opportunity to win the game.
"I have confidence in my offense," Santana said. "We have a lot of young talent. I know they can get the job done."
Royals RHP Jeremy Guthrie, who turns 34 on Monday, will start Tuesday's interleague game at Atlanta. Blue Jays RHP Gavin Floyd will start Monday against the White Sox. ... Blue Jays 3B Brett Lawrie (ribs) made a rehab start for Class A Dunedin at 2B on Sunday. ... Royals 3B Mike Moustakas got the day off from the starting lineup. He was 1 for 17 on the homestand.