KANSAS CITY, Mo. -- With an umpire behind the plate that has given him bad dreams, Zack Greinke was nervous. Throwing 27 pitches in a shaky first inning when he gave up two walks and a single didn't help, either.
Then Greinke settled down and his Kansas City teammates started doing what they hardly ever do, scoring runs in bunches. The result was a 9-4 victory against the Los Angeles Angels that improved Greinke's record to 4-1 and averted a three-game sweep.
"It was a total team game," said Royals outfielder David DeJesus, who contributed a three-run home run to the 14-hit attack by the AL's lowest-scoring offense. "Zack was just throwing strikes, pounding the strike zone. Everyone did something today. We got key hits with runners on base."
Alex Gordon also hit a home run and everybody in the lineup got at least one hit and Jered Weaver (2-5) endured his worst outing of the year.
Greinke went seven innings as the Royals snapped the Angels' four-game winning streak and won at home for only the fourth time in 13 games.
He gave up five hits and three runs, striking out eight and walking two. His ERA, the second-lowest in the league entering the game at 1.47, rose to 1.80 and fell a bit further behind Cleveland's Cliff Lee, who pitched seven shutout innings against the Yankees Wednesday night and lowered his major league-leading ERA to 0.81.
"I remember feeling like I was having trouble throwing strikes the first couple of innings," Greinke said. "And after that, it got a lot better."
Crew chief Tim McClelland, working home plate, had his typically tight strike zone.
"I'm kind of scared to throw to him," Greinke said with a grin. "For some reason, he's probably the one I'm scaredest of. I have like nightmares about him.
"If you make your pitches, he has a really consistent zone, too. But the first inning, they were all just barely off, or just really close. I thought it might be a long day the way I wasn't commanding stuff early in the game. But it got better as the game went on."
Weaver was charged with a season-high eight runs in a season-low 3 1/3 innings. The right-hander gave up 10 hits and had one walk and one strikeout.
"The problem was command," Weaver said. "I was just leaving balls up. It was just one of those days. No excuses."
DeJesus hit a three-run shot off him in the second and Gordon added a two-run drive in the fourth.
Greinke's only loss was a 2-1 setback to Texas when he gave up four hits and struck out nine in seven innings.
"He's throwing the ball with good movement," Angels manager Mike Scioscia said. "It's got great life on it."
Kansas City's Jose Guillen, after being rested for a day because he was hitting only .165, was 3-for-3 with two doubles. Mark Grudzielanek also had three hits as everybody in the Royals lineup hit safely. The 14 hits and nine runs both tied the team's season highs.
Garret Anderson, in his past nine at-bats in the three-game series, had three home runs, a triple, two singles and eight RBI. He hit a home run in the ninth inning Wednesday night off Yasuhiko Yabuta.
"The pitches I hit were just mistakes out over the plate," Anderson said. "I've always liked this park. I like Baltimore, too, but I don't do very well there."
Leading off the fourth, Anderson tripled. But Greinke retired Torii Hunter on a hard grounder to third, and then struck out Mike Napoli and Robb Quinlan.
"I was giving them the run," Greinke said. "But when they hit the ground ball to third and (Anderson) didn't go home, then I was like, 'All right!' After that first out, I might have reached back a little bit more and attacked the zone. I just tried to throw it hard right down the middle and it worked out."
The Angels didn't have another baserunner until Reggie Willits singled leading off the seventh and Napoli cracked his team-leading eighth home run, a 422-foot drive that made it 9-3.
The Angels lost for only the second time after being the first team to score. ... Anderson, who had been slumping badly, has hit in four consecutive games. ... Napoli had three hits in a game for the fifth time, and first since last July 20 at Minnesota. ... Thirteen of Guillen's 23 hits have gone for extra bases, with 10 doubles and three home runs.