KANSAS CITY, Mo. -- Jarrod Dyson drove in the go-ahead run in a three-run seventh and James Paxton picked up his seventh victory in as many starts as the Seattle Mariners topped the Kansas City Royals 5-2 on Friday night.
Guillermo Heredia doubled in the first run in the seventh to tie the score at 2. Dyson laced a single to right, scoring Heredia. Dyson stole second and scored on Leonys Martin's two-out single.
The Royals took a 2-1 lead in the sixth when Whit Merrifield, who doubled to lead off the inning, scored on a Paxton wild pitch.
Paxton (12-3) has not lost since June 27 to the Philadelphia Phillies. He was pulled after 95 pitches and six innings, giving up two runs on four hits, one walk and two wild pitches, while striking out seven.
Jason Hammel (5-9) gave the Royals a quality start but suffered the loss. He yielded three runs on six hits over 6 1/3 innings.
Danny Valencia provided the Mariners with an insurance run in the eighth when his second sacrifice fly of the game scored Jean Segura, who had tripled.
Edwin Diaz worked a 1-2-3 ninth to earn his 22nd save.
The Mariners beat the Royals for the first time this year in five games.
Hammel gave up a rare first-inning run to the Mariners.
With one out, Segura beat out a slow roller to third baseman Mike Moustakas for an infield single. He stopped at third on Robinson Cano's 500th career double, a liner into the right-field corner. Cano is tied for 61st place with Hall of Famer Goose Goslin and John Olerud on the all-time doubles list.
Valencia's sacrifice fly to right field scored Segura. It was only the third run Hammel has allowed in the first inning in his 22 starts.
Paxton, who went 6-0 in six July starts, did not allow a hit until Moustakas' fifth-inning one-out single, a sharp ground ball to right field.
Moustakas went to second on a Paxton wild pitch and third on Jorge Bonifacio's groundout to Cano.
Brandon Moss, who hit a pair of home runs in the Thursday victory, laced a first pitch to left to score Moustakas to tie the score at one.
Paxton struck out five in the first five innings, including the side in the third inning.
Ben Gamel led off the Mariners' sixth with a single but was erased when Segura lined out to shortstop Alcides Escobar, who doubled off Gamel.
NOTES: Mariners DH Nelson Cruz was scratched late with a neck spasm. Guillermo Heredia replaced him as the DH. ... The Mariners activated INF/OF Shawn O'Malley from the 60-day disabled list and optioned him to Triple-A Omaha. ... No Zoom, Zoom. Royals C Salvador Perez threw out CF Jarrod Dyson trying to steal second to end the second inning. ... Royals LF Alex Gordon was given the night off. ... Mariners RHP Felix Hernandez and Royals LHP Danny Duffy are the Saturday probables.