SEATTLE -- A fan seated behind the Seattle Mariners' dugout gave Mike Hargrove an earful when he went to mound in the eighth inning.
"Sit down, Hargrove!" he yelled. That and a chorus of boos from 28,382 greeted the Mariners' manager on his walk to visit starting pitcher Jamie Moyer with one out in the eighth Friday night.
Moyer had thrown 83 pitches and had just allowed his second single, to Kansas City's Doug Mientkiewicz, when Hargrove asked him how he felt. One, no-nonsense "I'm fine" later, Hargrove returned to the dugout and Moyer got Angel Berroa to hit his next pitch into an inning-ending double play.
From there, the 43-year old finished a perfect ninth inning for his first two-hitter in 20 years, a 4-0 victory over the Royals. It was Seattle's second win in seven games.
Jose Lopez and Raul Ibanez hit home runs on Bobby Keppel's first two pitches of the seventh inning to give Moyer all the runs he needed in his first complete game since a 3-1 loss at Baltimore on May 25, 2005.
It was his first two-hitter since Aug. 16, 1986, at Montreal, when he was a rookie with the Chicago Cubs.
Keppel, who was strong in his first major league start, was 2 years old at the time.
"What were you doing 20 years ago?" Moyer asked afterward, smiling.
Hargrove smiled, too. He heeded his pitcher's -- and the angry fans' -- calls to keep Moyer in the game.
"I don't blame them," Hargrove said. "One of the sad things about being a manager is you feel things in your heart, but you have to manage with your head ... in my head, I was on the fence."
Moyer pushed him off by finishing his typically coy game of tantalizing breaking pitches. Some appeared to be crawling at speeds better suited for school zones than baseball radar guns.
"That's exactly why he's been here for 20 years," said the Royals' Reggie Sanders, a 16-year veteran. "He had the change-up working tonight. You knew it was coming and you still grounded out - and then he threw it slower.
"Didn't he hit 30 miles-per-hour once?"
Moyer struck out two, walked one and hit a batter. Double plays erased three of those base runners. The only time Kansas City got a runner as far as second base, in the fifth, Moyer retired Mientkiewicz and Berroa on ground balls to end the inning.
He had three-ball counts on just three of 29 batters.
"Jamie was absolutely beautiful," Hargrove said. "He was golden tonight."
Minnesota whacked Moyer's slow stuff for 11 hits and a season-high eight runs in six-plus innings last weekend. That made Friday all the more satisfying for him.
"I had five days to think about that," he said.
"This was nice. It was crisp. It was a fun game to be a part of."
It was for Keppel, too - until the seventh. He had allowed only Ibanez's second-inning double and Ichiro Suzuki's single in the sixth. But Lopez quickly turned on an inside pitch and sent it four rows into the left field bleachers to break a scoreless tie.
Lopez had gone 4-for-21 (.190) on Seattle's miserable, 1-5 road trip that ended on Wednesday. The new No. 3 hitter punctuated his first home run from that prime, run-producing spot with a smack of the hands as he rounded first base.
"First home run in the three spot -- I was running the bases happy," Lopez said.
Ibanez then sliced Keppel's next pitch, a low fastball, through the railing atop the right-field wall for Seattle's first back-to-back home runs this season.
Keppel, who has had injury problems in each of his previous three seasons in the minor leagues, left after allowing two more hits in the innings. He allowed six hits in all, walked one and struck out four in his 6 2-3 innings.
"A lot of guys came up to me and said, 'Great job.' But I'll walk away from this saying I pitched well but still got the loss," said Keppel, the 36th overall pick in the 2000 draft by the New York Mets.
The 2-hour game time was the fastest in the history of Safeco Field, which opened in 1999. ... Lopez added a two-run double that scored Ichiro Suzuki and Adrian Beltre in the eighth inning. That pushed his team-leading RBI total to 45 - tops among major league 2B. ... SS Yuniesky Betancourt backed Moyer with nine assists, one of which was a majestic double play he started with a throw while seated. ... Kansas City fell to 3-4 on its season-high, 10-game road trip. ... This was the ninth shutout of Moyer's career. Three have come against Kansas City. ... The Royals are now 1-13 against lefty starters.