Hernandez (12-9), who has a 7.84 ERA in his losing streak, struck out Mike Moustakas in the sixth to reach 200 strikeouts for the fifth straight season.
Duffy, who had elbow surgery last year, departed after 3 2-3 innings and 91 pitches. He was charged with one run and five hits with four walks and four strikeouts.
"I didn't have it today," Duffy said.
Seattle got its run when Brad Miller drove in Abraham Almonte with a two-out triple in the fourth.
The Royals tied it on consecutive singles by Eric Hosmer, Billy Butler and Moustakas in the bottom half.
"It was tough luck," Hernandez said. "A lot of ground balls to the outfield, it happens. I commanded the fastball better."
Duffy threw 68 pitches in the first three innings and stranded six runners. He struck out Kendrys Morales and Justin Smoak swinging to end the first with two runners on.
Michael Saunders led off the second with a bunt single and Duffy walked Mike Zunino on nine pitches before retiring the next three batters.
The Mariners went 1 for 11 with runners in scoring position and stranded 10 runners.
NOTES: Zunino was activated from the disabled list after five rehab games with Triple-A Tacoma. He went on the disabled list July 26 with a broken left wrist. ... Carlos Pena, whom the Royals signed to a minor league contract last week, went 3 for 4 with a home run and four RBIs as Triple-A Omaha beat Round Rock to clinch the Pacific Coast League North Division championship. ... RHP Erasmo Ramirez will be added to the Mariners' roster Tuesday and start against the Royals. This will be his 10th Seattle start this season and 17th career start.