ANAHEIM, Calif. -- Dallas McPherson finally is hitting the way the Angels thought he could.
The highly regarded rookie has struggled at the plate after taking over for Troy Glaus, but McPherson certainly has lived up to his promise for the past two games.
His game-winning shot off Mike MacDougal was only his third home run of the year, but second clutch homer in two nights.
"That was a great win all the way around," McPherson said. "We needed to get guys on base to fight back from a five-run deficit. That's a great morale booster for the team."
A morale booster for him as well?
"I don't think the way I've been going is as big a deal with me as it is with you guys," McPherson told reporters crowded around his locker. "I've been through slumps before, and I've been hot before, and I always stay on an even keel."
His two-run shot in the seventh inning put the Angels ahead to stay in a 3-2 win over the Chicago White Sox on Thursday. He still is hitting just .228, with only seven RBI in 32 games.
Teammate Adam Kennedy is happy to see McPherson have some success.
"He's got tons of support here, but if you feel like you're not contributing, I know it's tough," Kennedy said.
The Angels' Paul Byrd, who gave up four runs in seven innings and left with Los Angeles trailing 4-1, thought it was over when the Royals opened an 8-3 lead in the ninth.
"I'd already conceded, so I should apologize for that," Byrd said. "We could have thrown in the towel. I hope this gets us going a little bit offensively.
"For Dallas, it's huge. We need Dallas McPherson."
McPherson's one-out shot over the wall in right center came on a 1-0 pitch from MacDougal (2-2).
Down 8-3 after the Royals' four-run ninth inning, the Angels stormed back with their five runs -- four unearned -- in the bottom of the inning. Kansas City shortstop Angel Berroa made two costly errors to let the Angels tie it.
"It doesn't get any worse than this," Kansas City interim manager Bob Schaefer said. "We played great for 8½ innings, we pitched well, got some key hits and ran the bases well.
"It would have been a tremendous win. Then all of a sudden, a walk here, a bloop there, a couple of errors -- it was a nightmare. I never thought anything like that could happen. But when you're going bad, you're going bad."
Scot Shields (4-1) pitched a perfect 10th inning in the win, which kept the Angels tied with Texas for the AL West lead.
McPherson began the ninth-inning rally with an RBI single against Mike Wood.
Then, with the bases loaded and no outs, Kennedy hit a potential double-play grounder to shortstop, but Berroa's throw to second sailed wide for his second error of the inning. Bengie Molina, McPherson and Orlando Cabrera scored and Kennedy went all the way to third.
Still with no outs, Chone Figgins singled up the middle to score Kennedy and tie it 8-all. MacDougal came on to finish the ninth, then struck out Molina to open the 10th before McPherson homered.
The loss was the Royals' fourth in a row and seventh straight on the road.
Los Angeles closed within 4-3 in the eighth on Kennedy's RBI double off Ambiorix Burgos, followed by Steve Finley's broken-bat single against Andrew Sisco to score Kennedy.
But the Royals came back against Esteban Yan to take an 8-3 lead. John Buck hit a solo homer, then three more runs -- two unearned -- scored when Mike Sweeney's single to left field bounced past left fielder Garret Anderson for an error and rolled all the way to the fence. Sweeney ended up on third.
After the game, the Angels optioned RHP Ervin Santana to Triple-A Salt Lake and will activate RHP Kelvim Escobar to start on Saturday. ... Despite RHP Jose Lima's 0-4 record and 8.13 ERA in 11 starts, Schaefer has no plans to demote him to the bullpen. "That's not the answer, I don't think," Schaefer said. "We don't have the luxury right now to take him out of the rotation."