SEATTLE -- Kevin Millwood is having an easy time ignoring trade speculation.
"My computer's broke," he said.
His arm is not.
The way Millwood is pitching lately, he could be a quick fix for someone's rotation before Tuesday's trade deadline.
Millwood (4-8) gave up one unearned run and six hits in 6 1/3 innings, lowering his ERA to 3.91 with his second consecutive solid outing. He struck out three, walked one and was aided by two excellent plays from Brendan Ryan.
The shortstop sprinted into left field to catch a popup well behind third base, then later ranged to his right to gobble up a grounder, leap and throw to first for an out.
"I'm not sure you can get any better than that guy," Millwood said.
Cain's fly ball soared into the sunlight and Seattle right fielder Casper Wells paused, waiting for it to come down to a point where he could pick it up. Then he sprinted toward the line, but it was too late.
The ball tailed away from Wells and dropped, putting the Mariners in peril.
"He probably hit it in the best spot you could possibly hit a ball," Wells said. "I'm glad Tom got out of it because I wouldn't have had a good afternoon after that."
Royals third baseman Mike Moustakas sprained his right knee while diving for a grounder in the first inning. He is day to day and will be examined again Sunday.
Billy Butler was 3 for 3 for Kansas City.
Montero hit his 10th home run, connecting in the third off Bruce Chen (8-8).
"Made a mistake on Montero," Kansas City manager Ned Yost said. "Tried to go in on him and the ball ended up middle-away."
After navigating around two hits in the first, Chen gave up three runs on four hits in the third.
Gordon turned Kyle Seager's fly ball into a double when he lost it in the sun in left field in the third. Miguel Olivo followed with a single to right and the Mariners challenged the arm of Jeff Francoeur, who came into the game leading the league in outfield assists. Seager slid wide and tapped the plate with his hand to put Seattle up 3-1.
Kansas City took a first-inning lead when Butler singled home Alcides Escobar.
The Royals closed to 3-2 in the eighth when Gordon doubled off Brandon League and Escobar hit a one-out triple. But Chris Getz, hitting in Moustakas' spot, grounded out against a drawn-in infield and after an intentional walk to Butler, Yuniesky Betancourt grounded out to end the inning.
The Mariners added a run in the eighth on Mike Carp's sacrifice fly.
Kansas City lost its fourth straight on the road and dropped to 1-6 against the Mariners this season.
The Mariners inducted Randy Johnson and Dan Wilson into the team's Hall of Fame. They are the fifth and sixth members, joining Alvin Davis, Edgar Martinez, Jay Buhner and former broadcaster Dave Niehaus. ... Getz came in to play second and Betancourt moved to Moustakas' spot at third after the injury. Getz dropped a soft fly ball on his first fielding chance. Moustakas has been hitting third and is second on the team in home runs and RBIs.