Vargas (8-3) struck out five, allowing just four hits with two walks during his best outing since May 9, when he went seven scoreless innings in a win over Seattle. The lefty had given up at least two runs in his last five starts.
In his second game with the Royals, Raul Ibanez went 2-for-4 with a solo homer and two runs scored. The veteran slugger was released by the Angels in late June.
Mike Moustakas, Jarrod Dyson and Eric Hosmer drove in the other runs for Kansas City, winners in 12 of its last 16 away from home.
Chris Parmelee was the lone bright spot offensively for the Twins, finishing with two of their four hits in extending his career-long hit streak to 12 games.
Kevin Correia (4-10) took the loss, allowing a pair of runs on six hits over six innings of work.
Omar Infante's ground-rule double in the second inning put runners on second and third for Moustakas, who opened the scoring with an RBI single to right. Dyson followed with another RBI base knock, making it 2-0. Kansas City loaded the bases with two outs later in the inning, but Billy Butler went down swinging to end the threat.
Minnesota hardly put a scare into Vargas, putting two runners on base just once in the fourth inning. Vargas did not allow a runner to reach third base.
Ibanez's solo blast in the top of the eighth made it 3-0, and Hosmer's RBI single to left scored Alcides Escobar in the ninth for the final run.
Wade Davis and Greg Holland each pitched an inning in relief for KC, securing the shutout.