The AL West-leading Rangers tagged Hernandez (12-8) for nine runs and 11 hits in three-plus innings. The former AL Cy Young winner's ERA climbed from 2.63 to 2.97.
Martin Perez (8-3) limited the Mariners to two runs and five hits in six innings. The rookie won his fifth straight decision.
Adrian Beltre, who hit his 28th homer, and Elvis Andrus each got three of the Rangers' 17 hits. Mitch Moreland also homered as every Texas starter got a hit except for Alex Rios, who chipped in with a walk, a stolen base and a run.
After working out of a jam in the first, it looked as if Hernandez would escape trouble yet again in the second. Martin spoiled that notion, though, hitting a three-run homer with two outs.
The Rangers added a pair of runs in the third on a line drive by Geovany Soto that was misplayed by left fielder Raul Ibanez. The ball ended up falling in front of a sliding Ibanez for a two-run single.
It got worse for Hernandez in the fourth as he failed to record an out, giving up two doubles and a pair of singles. Beltre greeted reliever Brandon Maurer with a home run.
Perez breezed through the Mariners, not allowing a hit until Kyle Seager's one-out single in the fourth. The rookie hasn't lost since July 21 and has won five times in August, a Rangers rookie record in a month.
Dustin Ackley hit a solo home run and an RBI double. Seager homered in the sixth, a drive to right that struck the window of the Hit It Here Cafe in the second deck.
NOTES: Hernandez matched the second-shortest outing of his career. ... Ackley is hitting .356 since the All-Star break to raise his season average to .253. He has two home runs in his last four games, after hitting just one in his first 85.