Hernandez allowed just Lonnie Chisenhall's single in the fifth inning and walked three in picking up his 10th victory of the season.
Fernando Rodney earned his 23rd save with a perfect ninth inning.
The Mariners failed to take advantage early after loading the bases in the first inning against Cleveland starter T.J. House. After a leadoff single from Port Orchard native Willie Bloomquist, Robinson Cano reached on an error by first baseman Nick Swisher while attempting to complete a double play. Kyle Seager singled and Mike Zunino walked to load the bases, but House struck out Logan Morrison to get out of the jam.
Hernandez didn't allow a hit through the first four innings, with a walk to Michael Brantley giving Cleveland its only baserunner.
House (0-2) settled in as well, retiring 13 of the next 14 batters he faced to keep the game scoreless into the fifth inning.
Michael Saunders led off the sixth with a chopper that House fielded, but he threw wide of first base up the right field line and Saunders advanced to third on the error. Cano then snapped an 0-for-14 skid with a two-run shot to right that gave the Mariners a 2-0 lead.
Cano singled to lead off the eighth and scored on a single from Mike Zunino to give the Mariners an insurance run.
NOTES: Felix Hernandez surpassed Bob Feller (1,836) for the sixth-most strikeouts in a career before a player's 29th birthday. Hernandez's nine strikeouts Sunday gives him 1,840 for his career. ... Cleveland pitchers had their streak of 15 consecutive scoreless innings snapped on Cano's homer in the sixth inning. They had held Seattle scoreless since the eighth inning of Friday night's game. ... The Mariners are expected to call up RHP Taijuan Walker to make his season debut and start Monday's game against in Houston against the Astros. He will face off against Houston RHP Collin McHugh (4-6, 2.86 ERA). ...To make room on the roster for Walker, the Mariners sent Stefen Romero down to Tacoma.