KANSAS CITY, Mo. -- Brandon Moss hit two home runs and Lorenzo Cain drove in the go-ahead run in the seventh inning as the Kansas City Royals beat the Seattle Mariners 6-4 on Thursday night.
The Royals rallied from deficits of 2-0 and 3-2 for their 32nd comeback victory. They snapped a three-game losing streak.
Moss homered in the fifth off Yovani Gallardo after Mike Moustakas had walked. That snapped a four-game homer-less skid for the Royals, which matched their longest drought of the season.
Moss also homered in eighth for his 11th career multi-homer game.
Emilio Pagan (0-2) took the loss, giving up two runs, one unearned, in the seventh. Alcides Escobar led off the inning with a single and Alex Gordon moved him to second with a sacrifice bunt.
Whit Merrifield reached on a fielding error by first baseman Danny Valencia. Cain punched a single to right to score Escobar and Cabrera singled home Merrifield.
Ryan Buchter (1-0), the fourth of six Kansas City pitchers, threw one pitch to retire Kyle Seager to end the seventh and picked up the victory.
Kelvin Herrera worked the ninth to log his 24th save in 27 chances. He yielded a run on Robinson Cano's two-out single.
Seager and Valencia hit solo home runs for the Mariners. Guillermo Heredia's sixth-inning single scored Valencia, who led off the inning with a double.
Trevor Cahill, who the Royals picked up in a July 24 deal with the San Diego Padres, allowed two runs and six hits over 4 2/3 innings in a no-decision.
Jarrod Dyson, who was the Royals' 2006 50th-round draft pick and played a key role on their 2014-15 World Series teams, was back at Kauffman Stadium for the first time as a visitor. The Royals traded him to the Mariners in January. "It's kind of weird being on the other side, in the visitor's locker room, but coming back is home for me, you know," Dyson said. "The only team I've ever been with. And I had some good memories here, some fun times." Dyson tipped his batting helmet to a standing ovation before singling in the second inning.
YOST TOSSED AGAIN
Royals manager Ned Yost was ejected for the second straight game. Yost protested when after a crew chief review failed to overturn Valencia's fourth-inning home run and was run by plate umpire Larry Vanover. Yost was ejected in the ninth inning Wednesday in Baltimore. Yost has 42 career ejections, but this was the first time they were back-to-back.
Mariners: OF Mitch Haniger remains on the disabled list with a concussion and facial lacerations after being hit by a pitch. "The swelling is almost all down," Mariners manager Scott Servais said. "He needs to get clearance from the doctor to start lifting and working out a little bit, which he's hoping to get today or tomorrow."
Royals: Cain was back in the lineup after not playing Wednesday because of a sore hamstring.
Mariners: LHP James Paxton, who went 6-0 with a 1.37 ERA in July, will start the second game of this series.
Royals: RHP Jason Hammel will face Seattle for the first time since 2014.