Kendry Morales homered and drove in two runs for the Angels, who had their three-game winning streak snapped.
Hudson broke a 4-all tie with a three-run homer in the fifth off Kelvim Escobar (5-9).
Miguel Batista (7-5) overcame early control problems to earn the win. He gave up six runs in seven innings and added an RBI single to snap his three-game losing streak.
Jorge Julio pitched a hitless ninth for his sixth save.
Dodgers 7, Pittsburgh 4
At Los Angeles, Nomar Garciaparra hit his 200th home run, Rafael Furcal and Ramon Martinez each had two RBIs and the Los Angeles Dodgers beat Pittsburgh 7-4, handing the Pirates their 11th straight loss.
Brad Penny (8-2) pitched five-plus innings, allowing four runs and six hits -- including a homer by Joe Randa leading off the sixth. The right-hander is 6-1 over his last nine starts.
He was lifted with a 1-0 count on Jose Castillo, after Randa's second homer of the season narrowed the gap to 5-4. But Garciaparra led off the seventh against reliever Damaso Marte with his ninth homer of the season, Russell Martin made it 7-4 with his second run-scoring groundout, and Takashi Saito pitched a perfect ninth for his fifth save.
Kip Wells (0-2) gave up five runs and nine hits in five innings in his second start after missing the Pirates' first 71 games while recovering from surgery to repair a blocked artery in his pitching arm. The right-hander, who had an NL-worst 18 losses last season, lost his first outing at Kansas City after blowing a 4-0 lead.
The Pirates were swept in a series of three or more games for the seventh time this season and sixth time on the road, dropping their record to 26-51. They would have to go 55-30 the rest of the way to avoid their 14th consecutive losing season.



