SEATTLE -- Kevin Millwood pitched effectively into the seventh inning, Jesus Montero hit a two-run homer and the Seattle Mariners beat the Kansas City Royals 4-3 on Saturday.
Millwood (4-8) gave up one unearned run and six hits in 6 1-3 innings. He struck out three, walked one and was aided by two excellent plays from shortstop Brendan Ryan.
Tom Wilhelmsen worked the ninth for his 13th save. Lorenzo Cain hit an RBI triple with two outs before Alex Gordon grounded out.
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). 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.