KANSAS CITY, Mo. -- Billy Butler took the first pitch from Josh Kinney leading off the ninth inning to get a good look at it.
Butler hit the 1-1 pitch from Kinney (0-1) out to left center for his 18th home run. Butler went 3 for 3 and walked twice.
|More on Mariners-Royals|
|More MLB coverage|
"Billy is a special hitter," Royals manager Ned Yost said. "He went up in that inning and said, 'I'm going to take the first pitch and I know it's going to be a slider and take a good look at it and gauge it.' He sat on one and then drove it into the stands.
"Billy is not afraid to take a pitch or two to see what it is doing. He's a special guy, knows velocities, knows exactly what ball is doing, if it cutting or sinking. He studies that stuff real religiously."
Butler, the Royals' lone representative in the All-Star game, raised his average to .300, while he tops the club in home runs and with 56 RBI.
"I just got a good pitch to hit and didn't miss it there at the end," Butler said. "It was big to pick up the pitching staff. It's obviously been a tough series for them, but they've picked us up throughout the season."
Butler was not sure if the ball was going to clear the fence.
"Never at night here," Butler said. "As the night goes on it gets tougher and tougher to hit one out of here. The air gets thicker. Earlier in the game I felt it would have gone a lot further. I knew I had at least a double, got on second base and had a pinch-runner."
Kinney threw Butler a fastball, but in the wrong spot.
"It was the right pitch," Kinney said. "I wanted to keep the ball away from that guy and make him hit it to right field, but the ball just ran right back over the middle of the plate. He's supposed to hit it. I just missed my spot. You just say, 'Hey, good AB.' He got me this time. I'll get him tomorrow."
Greg Holland (4-2) pitched a perfect ninth for the victory.
Lorenzo Cain, who had a pinch-hit homer Tuesday, connected in the fifth inning with Butler aboard. Cain, who also singled and scored in the Royals' three-run second inning, is 10 for 20 in his six-game hitting streak.
Royals starter Bruce Chen, who had an 11.85 ERA while giving up 24 hits and 18 runs in 13 2/3 innings in his past three starts, gave up four runs and seven hits in 5 1/3 innings, walking none and striking out six.
Chen gave up a solo home run to Kyle Seager in the second and a two-run shot to Casper Wells in the fourth. He has allowed nine home runs in 19 innings over his past four starts.
The Royals led 7-4 after five innings. Alex Gordon had a two-run double in the fourth, while Cain connected in the fifth.
The Kansas City bullpen, however, failed to hold the lead after Chen left. The Mariners scored three runs in the seventh off Jose Mijares and Aaron Crow. Jesus Montero hit a two-run single and scored on Seager's two-out double.
"That would have been a tough one to drop," Butler said. "There's no doubt, putting up seven runs and getting a nice lead and having the lead late in the game and them coming and fighting back. They brought their sticks this series."
Mariners starter Kevin Millwood, who has not won since May 23, allowed seven runs and 10 hits in five innings.
Mike Moustakas doubled home Butler in the Royals' three-run second. Brayan Pena's groundout and Chris Getz's bunt single drove in the other runs in the inning.
LHP Will Smith will be recalled and start Thursday for the Royals. He was 3-0 with a 1.30 ERA in his past four starts with Triple-A Omaha. The Mariners will start RHP Felix Hernandez, who is 3-0 with a 1.40 ERA in his past six starts. ...The Mariners placed LHP Charlie Furbush on the DL with a strained left triceps and recalled RHP Steve Delabar from Triple-A Tacoma. ... The Royals optioned LHP Ryan Verdugo, who surrendered six runs, eight hits and two walks in 1 2/3 innings in his major league debut Monday, to Omaha. They promoted LHP Francisley Bueno from Omaha.