Mike Trout seems to steal the show even when the Los Angeles Angels lose.

The rookie center fielder robbed Miguel Olivo of a two-run homer in the eighth inning Saturday night, but all that did was prevent the Seattle Mariners from increasing an early six-run lead they built against Dan Haren. Vernon Wells hit a two-run homer in the bottom half and Kendrys Morales added a solo shot in the ninth for the Angels, whose rally fell short in a 7-4 loss.

Olivo drove reliever Jerome Williams' pitch to straightaway center field after a leadoff single by Eric Thames, but Trout timed his leap perfectly at the fence before pulling it down and throwing to first base to double up the runner.

"He seems to be putting himself in the right place at the right time and making spectacular plays," Wells said. "And the guys on the other side of the field are on the wrong side of the web gems right now. They can't test him anymore. They've got to pick on somebody else."

Olivo was impressed by the latest in a string of spectacular plays Trout has made on potential home runs this season.

"I thought it was gone, but it was too high and he jumped like Spiderman," Olivo said. "He's got like four of those this year, so I'm not the only one. It's unbelievable. I saw the replay and he jumped like four feet up. But it's OK. We won the game."

Wells had three hits, including an RBI single in the fifth against Seattle starter Hisashi Iwakuma (3-3). It was the first time he drove in a run with a hit since May 16, when he hit a two-run homer against Gavin Floyd of the White Sox at Anaheim. Wells tore a ligament in his right thumb four days later and underwent surgery, keeping him sidelined until July 28.

"I'd rather go oh-fer and win, to be honest," said Wells, who was hitless in his first 16 at-bats off the disabled list before singling in the third inning. "I can deal with oh-fers if we win games. Individual stuff at this point doesn't matter. What we play this game for is to play meaningful baseball at this time of the year. Hopefully we can just win a ballgame tomorrow."

Haren (8-9) threw 63 pitches in 3 1-3 innings and was charged with seven runs — five earned — and five hits including John Jaso's solo homer. It was the ninth consecutive start in which the three-time All-Star allowed a home run, the longest streak of Haren's 10-year career. It began when the Colorado Rockies hit four against him on June 9 at Coors Field — all solo shots in Haren's 11-5 victory.

"Haren's no different than any other pitcher — you want to get to him early and get to the bullpen," said Mariners left fielder Trayvon Robinson, who had a pair of hits including an RBI single. "He's a groundball pitcher who throws a lot of stuff out of the zone and tries to make you chase it."

Haren's outing was quite a contrast from his previous one against the Mariners on May 24, when he beat them 3-0 with a four-hitter and career-high 14 strikeouts.

"That was quite a while ago when we faced him, and these guys are a lot better now," Seattle manager Eric Wedge said after his team snapped a five-game losing streak. "We're a much better hitting ballclub and more experienced than we were at that point in time. He's a strong starting pitcher at the big league level and knows how to get people out, so our guys did a nice job."

The Mariners grabbed a 3-0 lead in the second. Olivo, who came in 0 for 15 against Haren, hit a bloop single to right to put runners at the corners after a walk to Mike Carp. Robinson followed Olivo's hit with an RBI single, and another walk to No. 9 hitter Brendan Ryan loaded the bases before Dustin Ackley lined an 0-2 pitch to right-center for a two-run single.

"It just wasn't my night," said Haren, who gave up at least one homer in each of his first eight starts in 2006. "I felt great in the bullpen and the first inning went well, but I don't know what happened after that. It's not like they were blasting the ball all over the place. A couple of soft hits, then a big hit that opened the game up, and after that it was pretty much over. I really didn't see it coming."

Haren's problems continued to snowball in the fourth after Olivo singled to deep shortstop and continued to second on Erick Aybar's throwing error.

A wild pitch sent Olivo to third, and Ryan drove him in with a single after a walk and a stolen base by Robinson. Ackley followed with a routine grounder to two-time Gold Glove first baseman Albert Pujols, who misplayed the ball for his second fielding error in two nights as Robinson scored to make it 6-0. At that point, Haren was relieved by Jerome Williams, who gave up an RBI single to Jaso three batters later and finished the game.

Iwakuma allowed three runs and six hits in seven-plus innings and struck out four in his seventh major league start. The right-hander was staked to a 7-0 lead one night after teammate Felix Hernandez squandered a 5-0 cushion in Seattle's 6-5 loss.

NOTES: Haren failed to record a strikeout for only the second time in his last 261 starts. The other time was May 8 at Minnesota, when he pitched 3 2-3 innings in a 5-0 loss. ... Haren gave up at least one homer in each of his first eight starts in 2006. ... Iwakuma has allowed one home run in each of his seven starts. ... The Angels selected the contract of RHP Steven Geltz from Triple-A Salt Lake. A roster spot opened up for the first-time major leaguer when RHP David Carpenter was optioned to the Bees after Friday night's game.