Vargas (11-7) walked three and struck out five.
Mike Carp had three hits and drove in two runs for the Mariners, who got an RBI apiece from Carlos Peguero and Brendan Ryan. Dustin Ackley had two hits and scored a run for Seattle, which has won two of its last three games and three of its last five.
Thom Wilhelmsen allowed one hit but otherwise shut out the Royals in the ninth to collect his 12th save.
Kansas City starter Luis Mendoza (4-7) went five innings, allowing four runs on nine hits with three walks and one strikeout.
Billy Butler had two doubles and drove in a run for the Royals have lost two straight and four of their last five.