KANSAS CITY, Mo. -- It is endings like Tuesday night that propel clubs into the playoffs.

Kansas City's impoverished offense did zilch for eight innings, but Alex Gordon hit a two-run homer in the ninth to lift the Royals to a 2-1 victory over the Minnesota Twins.

Third baseman Gordon homered on the second pitch from Glen Perkins (3-1) with shortstop Alcides Escobar aboard. Escobar opened the inning with a single to shallow center.

"I don't think any of us saw that one coming -- a bloop and a blast," Twins manager Ron Gardenhire said. "They put a nice swing on it and ended up with a big walk-off for them."

Royals manager Ned Yost is less concerned with style points than with victories as the Royals (73-58) remain 1 1/2 games in front of Detroit in the American League Central.

"I don't care how we do it," Yost said. "Is that way really, really fun? Yeah, to win a game in that fashion where you've kind of been stymied all night long and then the ninth inning comes up -- base hit and, kaboom, the game's over.

"They're all exciting. I myself would prefer a bigger margin than having to take it down to the ninth inning. It's a little bit easier on me, but I'll take it any way I can get it. I felt all along we were going to find a way to get something done."

Wade Davis (7-2) picked up the victory, working a perfect ninth and lowering his ERA to 0.78.

The Royals' offense did nothing against Twins right-hander Ricky Nolasco.

Nolasco has been disappointing for most of the season, but on Tuesday he pitched like the Twins expected when they signed him to a four-year, $48 million contract in December.

Nolasco restricted the Royals to three singles, walked one, struck out six and twice hit first baseman Billy Butler with pitches in seven innings. Nolasco was fighting the flu and Gardenhire wondered how long he would be able to last in the 90-plus degree heat.

"I sweated it out the first few innings and after the second I felt good," Nolasco said. "It was really hot and I got nice and loose. I thought I threw pretty well. I just felt like crap and just pitched through it."

Right-hander Jared Burton worked a spotless eighth, but left-hander Perkins failed to hold it. He threw only four pitches, the last one a slider that Gordon parked over the right-field fence.

"We had a really good game out of Ricky," Perkins said. "I feel bad for him because he pitched seven shutout innings and threw the ball really well. He and the team don't have anything to show for it. It's not a fun feeling."

Gordon was not sure it would clear the fence.

"Not at all, especially this field," Gordon said. "It barely got out, so I actually thought the right fielder was on it and possibly off the wall, so I was running hard. I was so excited when it went over and pretty pumped for our team.

"It's not a comfortable at-bat against Perkins ever. The one thing I know about him is he attacks you with strikes -- fastball, slider guy. I really wasn't trying to do too much against him because he's so good out of the 'pen and such a good closer, but I just got a slider that was over the plate and put a good swing on it.

"We really didn't have any offense going all night and we were able to muster up something in the ninth, so it was great."

First baseman Joe Mauer's seventh-inning single scored second baseman Brian Dozier, who had led off the inning with a double, for the only Minnesota run. Mauer has driven in 99 runs at Kauffman Stadium.

The Royals threatened in the second when Butler was hit by a Nolasco pitch and catcher Salvador Perez dropped a lazy fly ball into left for a single. Designated hitter Josh Willingham, acquired from the Twins in an Aug. 11 trade, rolled into a double play and third baseman Mike Moustakas flied out to left to end the inning.

The Twins (58-73) did not get a hit until center fielder Danny Santana singled to lead off the fourth to extend his hitting streak to 10 games, but Royals left-hander Danny Duffy promptly picked him off first. It was Duffy's fifth pickoff this season and the 14th of his career.

Right fielder Oswaldo Arcia walked in the second and designated hitter Kennys Vargas singled in the fifth, but Duffy coaxed third baseman Trevor Ploufee to ground into inning-ending double plays in both innings. Duffy limited the Twins to one run and four hits in 6 2/3 innings.

NOTES: RHP Yordano Ventura will miss his Wednesday start with a sore back. RHP Liam Hendriks will take Ventura's spot in the Royals' rotation. Hendriks, who was acquired in a July 28 trade with the Blue Jays, was 4-1 with a 2.83 ERA in five starts with Triple-A Omaha. He will officially be added to the roster Wednesday. ... Royals 2B Omar Infante was out of the lineup with shoulder inflammation. ... The Twins are sending CF Bryon Buxton, who is considered the top prospect in the minors, to the Arizona Fall League. Buxton was limited to 124 at-bats this season because of a left wrist injury and post-concussion symptoms. ... RHP Phil Hughes, who has won his past four starts, will start Tuesday for the Twins. ... The Twins top the majors with 136 runs in August.