Kansas City handed the Twins only their second loss in nine games.
Minnesota scored once in the opening inning, but was blanked the rest of the way by a combination of five pitchers.
Jeremy Guthrie (6-3) allowed the lone run on six hits over six innings with four strikeouts. Greg Holland put the first two Minnesota batters on base in the ninth, but then struck out the next three to claim his 10th save.
The Royals sent eight men to the plate in their half of the first and capitalized on a fielding error by shortstop Pedro Florimon that made all three runs in the inning unearned.
Salvador Perez singled in Eric Hosmer to tie the game and Lough's two-out double put the Royals in front for good.
Kansas City added a run in the seventh on a walk, a wild pitch and an RBI single from Billy Butler.
P.J. Walters (2-1) gave up the three runs in the first to take the loss. He allowed seven hits in six innings.