Hernandez (10-4) scattered seven hits and didn't allow a walk in extending his unbeaten streak to nine games. The Mariners ace threw 69-of-109 pitches for strikes and fanned four.
Justin Smoak belted a three-run homer and added an run-scoring single as Seattle clinched its three-game series.
Raul Ibanez went 2-for-4 with an RBI for the Mariners.
Angels starter Jered Weaver (3-5) was tagged with the loss, yielding four runs on nine hits over 5 2/3 innings.