Gary DiSarcina made a spectacular play at shortstop. Rookie Felix Martinez missed a routine play at shortstop.
Martinez let Jim Edmonds' ground ball go through his legs with the bases loaded in the ninth. The error allowed DiSarcina and Darin Erstad to score for a 5-3 lead.
"We'll take it," Angels manager Terry Collins said. "I don't care how they come."
And if Martinez fields his ball cleanly?
"We would have had a home-to-first double play," said Royals manager Tony Muser, who was ejected during the Angels' three-run ninth. "We would at least have had an out at the plate, and we're still in business. That was a mess."
DiSarcina's big play came with the score tied at 3 in the seventh, with runners at first and third and one out.
Dean Palmer hit the ball hard into the hole, but DiSarcina went deep and made a backhanded grab. With his back still to second base, he flipped the ball to second baseman Justin Baughman to start an inning-ending double play.
"I didn't really think I had a chance at it when he first hit it, so I just sort of threw my glove out there and closed my eyes, and it went in," DiSarcina said. "Justin turned it pretty nicely. That was a big turning point in the game."
DiSarcina was prouder of the play than of his 4-for-4 performance at the plate, which matched a career high.
"If I boot that ball and we lose, four hits don't really matter to me," he said. "The double play in that situation is something a shortstop takes more pride and enjoyment in."
The Angels loaded the bases with no outs in the ninth against reliever Hipolito Pichardo (2-4) on singles by DiSarcina and Erstad and a controversial hit-by-pitch. Muser was ejected after arguing that Craig Shipley had swung at the ball before it hit him.
"It doesn't matter if it hits you. You swing the bat and you miss the ball, you're out," Muser said. "That's what I saw. They said he didn't swing."
Edmonds' ground ball came against Matt Whisenant, who replaced Pichardo after the hit-by-pitch.
Tim Salmon added an RBI single for the Angels in the ninth.
Shigetosi Hasegawa (3-1) pitched a perfect eighth for the win. Troy Percival worked the ninth for his 15th save.
Salmon broke out of a 1-for-15 slump in the Anaheim sixth with a leadoff homer for a 3-2 lead. The Royals tied it in the bottom half on Jermaine Dye's RBI single.
Johnny Damon scored in the Royals fifth for a tie at 2. He came in from second when Angels starter Omar Olivares, covering first base on Jose Offerman's ground ball, dropped the throw from Baughman for an error.
Olivares pitched seven innings giving up seven hits with two walks and seven strikeouts.
Anaheim took a 2-1 lead in the fifth as the first four batters in the inning hit safely against starter Jose Rosado. Baughman hit an RBI double and scored on Erstad's single.
Baughman's double ended Rosado's string of scoreless innings at 14. He shut out the Angels 4-0 on May 27 in his last previous outing.
Jeff King led off the Royals fourth with his 11th home run. He needs one more hit to reach the 1,000-hit mark.
Kansas City's Terry Pendleton was ejected in the fourth inning by plate umpire Rick Reed for arguing a called third strike. Palmer replaced Pendleton at third base.
Notes: Damon went 1-for-5, extending his career-high hitting streak at 13 games. ... Pendleton's ejection was his second of the season. He was also ejected May 12 at New York. ... Olivares committed two errors in the fifth inning, but the first one did not figure in the scoring. He threw the ball into the stands trying to pick off Martinez at first base, but Martinez was later thrown out at third. ... The Royals on Monday assigned outfielder Roderick Myers to Double-A Wichita for a 20-day rehabilitation assignment. Myers has been out since spring training because of a partial tear of the rotator cuff.
©1998 The Associated Press. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed