Updated

Dan Haren was downright excited for his first chance to pitch against the team that traded him, and the right-hander had all of his best stuff facing the Arizona Diamondbacks.

He ended up with a one-sided loss and another disappointment in his up-and-down season for the Los Angeles Angels.

Trevor Cahill pitched three-hit ball into the eighth inning, Aaron Hill hit a three-run homer, and the Diamondbacks slowed Los Angeles' roll through June with a 5-0 victory Friday night.

Haren (4-7) allowed eight hits and five runs during his sixth loss in his last nine starts. His hitters were no help, struggling mightily against Cahill in Los Angeles' first shutout loss in a month.

Haren spent parts of three seasons with the Diamondbacks, winning 37 games and making two NL All-Star teams before interim general manager Jerry Dipoto traded him back to his native Southern California in July 2010. Dipoto now runs the Angels, and Haren hadn't faced Arizona since 2004.

"They know how I like to pitch, and I know what they like to do," Haren said. "Of course I wanted to do well against them, but they got to me today."

Los Angeles opened a nine-game homestand with a loss for the majors' best interleague team since the start of the 2007 season (68-32). The Angels, who took two of three from the Dodgers this week, had the majors' best record over the past three weeks, winning 16 of 21 to move a season-best four games over .500.

Haren struck out five and pitched into the seventh inning, but gave up a run on his first four pitches. After Chris Young cracked a leadoff ground-rule double into the short porch in left, Jason Kubel followed with a run-scoring single, leaving Haren to pitch from behind all night.

"I felt great, no excuses," Haren said. "I've just really got to minimize my mistakes."

Albert Pujols' eight-game hitting streak ended with an 0-for-4 performance. The slugger had 15 hits during the streak.

Cahill (5-5) largely overwhelmed the Angels in his third straight victory following a five-start winless streak. He struck out eight while retiring the first two batters in each of the first seven innings. Two relievers finished the Angels' first shutout loss in a month.

"I was throwing all four pitches to righties and lefties," said Cahill, who's from Oceanside, Calif., just down the coast. "Usually when I feel like that, which is rarely, it's a good thing."

Cahill carved up the Angels' lineup from the opening pitch, allowing just two baserunners over the first four innings before escaping a two-on jam in the fifth on Mike Trout's weak grounder. Cahill has never allowed more than three earned runs in 10 career starts against the Angels, and his career ERA against Los Angeles dropped to 2.09.

"He's just been rolling, one start after another," Arizona manager Kirk Gibson said. "When he's got all of his pitches, he's doing a pretty good job managing the game."

In their first trip to Angel Stadium since 2001, Kubel had three hits for the Diamondbacks, who earned their ninth win in 12 games and got back to .500 (32-32) for just the second time since May 3. Ryan Roberts had an RBI double after Hill's homer in the Diamondbacks' four-run sixth.

Arizona led 1-0 in the sixth when the Angels intentionally walked cleanup hitter Miguel Montero to pitch to Hill with two on and two outs. Hill had hit just one homer in the last month, but he connected for a no-doubt shot to left.

Hill didn't disagree with the Angels' strategy against him.

"It's nice when it works out, but you're playing right on right, and Miggy had some better swings than me," he said.

Lyle Overbay and Roberts followed with consecutive doubles, pushing Arizona's lead to 5-0. Overbay left the game in the seventh inning when his knee tightened up, but the veteran said it was "already better now" in the clubhouse.

NOTES: Angels ace Jered Weaver moved a step closer to returning from the DL by throwing a simulated game, going through his normal routine and throwing 60 pitches with no problems. Weaver will throw in the bullpen Sunday before the Angels decide whether he will return next week from his DL stint with lower back pain. ... Los Angeles was shut out eight times in its first 36 games, but hadn't been blanked since. ... Veteran manager Tony La Russa attended the game. La Russa and Pujols both left the St. Louis Cardinals after last season's World Series championship run.