Brian Duensing allowed one run and struck out seven over eight innings and the Minnesota Twins continued an impressive run of success against Kansas City ace Zack Greinke with a 4-3 victory Wednesday night to complete a three-game sweep.

Duensing (8-2) allowed six hits and dropped his ERA to 2.02. J.J. Hardy homered and Denard Span added a two-run triple for the Twins, who have won six straight games to take a 5½-game lead over the Chicago White Sox in the AL Central.

Greinke (8-12) fell to 0-4 with an 8.18 ERA against the Twins this season. He allowed four runs and five hits with four strikeouts and three walks in eight innings.

The Royals scored twice in the ninth off Matt Capps on a groundout from Brayan Pena and a single from Alex Gordon. But Capps got pinch-hitter Mitch Maier to fly out for his 11th save in 13 tries.

Duensing, who was moved from the bullpen to the rotation on July 23 to take the place of the struggling Nick Blackburn, has allowed one earned run or fewer in four of his last five starts.

Greinke was mowing down the Twins through 4 2-3 innings, getting eight groundball outs and two strikeouts while Kansas City went ahead 1-0 on a single by Pena in the second.

The reigning AL Cy Young winner had two walks and the Twins got another baserunner on an error by first baseman Wilson Betemit, but Greinke didn't allow a hit until the Twins had two outs in the fifth.

Greinke walked designated hitter Jose Morales, who was filling in after Jim Thome was scratched with a mild abdominal strain. The Twins jumped on the next three pitches they saw from Greinke, getting a single by Hardy, an RBI-single by Matt Tolbert and a two-run triple from Span to take a 3-1 lead.

It was the second straight start that Greinke had taken a no-hitter into the fifth inning. Last time he took a 4-0 lead into the seventh against Detroit before allowing four runs in a no-decision.

The Twins just seem to have his number. They entered the game hitting .365 with 16 earned runs in 14 innings against one of the best pitchers in the American League.

"Nothing you do against Zack Greinke is easy," Twins manager Ron Gardenhire said before the game.

The Twins just make it look that way.

NOTES: The Twins honored injured 1B Justin Morneau (concussion) before the game as the team's nominee for the Roberto Clemente Award, given annually to the player who displays excellence on the field and in the community. Morneau hasn't played since July 7 but said before the game he is optimistic he will return this season. ... Royals 1B Billy Butler had further X-rays on his right hand Wednesday. Just like the initial test on Tuesday night, they showed a bruise and no break. Manager Ned Yost said he hoped Butler would be ready by Friday. ... Twins setup man Brian Fuentes was taken for an MRI on his back. He has pitched just 1-3 of an inning since being acquired from the Angels.