Hernandez (6-4) had lost his two previous starts -- surrendering 10 runs in the process. He held the Padres in check, however, throwing 110 pitches and striking out six before giving way to Oliver Perez in the ninth.
Nick Franklin hit the first two home runs of his major league career as part of the Mariners' power surge.
He hit solo shots in both the sixth and eighth innings to add to the solo blasts from Kendrys Morales in the second and Brandan Ryan in the third as well as a two-run blow from Endy Chavez in the seventh.
Seattle won on the road for the first time in eight games.
Andrew Cashner (4-3) took the loss, allowing four runs on seven hits in six innings.