Wilson hit a slow bouncer back to the pitcher in the second inning that allowed Mike Sweeney to score from third and singled in two runs in the fourth to give the Mariners a 5-1 lead.
That was enough for Hernandez (13-5), who limited the Royals to three runs on five hits in seven innings before turning things over to the bullpen.
Sean White retired the side in the eighth inning, and David Aardsma worked around a lead-off single in the ninth to grab his 31st save.
Mitch Maier hit a two-run homer for Kansas City to make it 5-3, and the Mariners tacked on an insurance run in the seventh when Sweeney drew a bases-loaded walk.
The loss went to Brian Bannister (7-11), who surrendered five runs on seven hits in 6 2/3.