Fresh off his first relief appearance since the 2004 World Series, Dan Haren showed the Cleveland Indians why he's been such a successful starting pitcher in the major leagues. And he did it with his most dominant performance.

The three-time All-Star pitched his first career one-hitter, allowing only Shin-Soo Choo's clean single in the fourth inning, and the Los Angeles Angels snapped the Indians' eight-game winning streak with a 2-0 victory on Tuesday night.

"I was going at them pretty much the whole night," Haren said. "I was pitching with a controlled aggressiveness. It was such a close game, I didn't want to leave anything out over the plate — but I didn't want to get burned with walks, either."

Haren's third start of the season, which required him to throw 125 pitches, was pushed back a day after he threw 13 pitches in a perfect 14th inning on Saturday night against Toronto and got credit for the Angels' 6-5 victory. That relief appearance ended his string of 203 consecutive starts.

"He just told me he's ready for the 'pen on Friday if we need him," manager Mike Scioscia said with a grin. "But hopefully, we're past those days."

Haren (3-0) struck out eight and walked two in his third shutout and 12th complete game in 225 starts. Choo's single to center field came with one out in the fourth.

"What was special about tonight was that he pitched with his back against the wall the whole night," Scioscia said. "There wasn't any margin for error. They have some guys on that team who can really drive the ball, but Dan made some terrific pitches to keep those guys down all night."

Haren and Jered Weaver have combined for all six of the Angels' wins through the team's first 11 games and have a cumulative 0.79 ERA. Haren is 7-0 with a 1.41 ERA over his last 11 starts.

"It was going to have to take a well-pitched game, and a guy like Haren to beat us," Cleveland manager Manny Acta said. "Haren was on his game. He was in complete command from inning one. He's one of the best pitchers in the game. He's a No.1 guy on a staff, and those guys are fortunate to have two of them."

Haren was never in trouble and helped himself defensively. After Orlando Cabrera reached on an error by Angels third baseman Alberto Callaspo, he was caught stealing when he took a big lead and broke for second before Haren went into his motion.

The Indians' winning streak was their longest since a 10-game string in August 2008. Cleveland is off to a surprising 8-3 start despite the defeat.

"That's baseball. Sometimes you're going to run into a guy who has a performance like that," Indians designated hitter Travis Hafner said after going 0 for 3 with a strikeout. "He was throwing four pitches and locating all of them and changing speeds. He was throwing a lot of off-speed stuff for strikes, and nothing was really in the middle of the plate."

Peter Bourjos and Mark Trumbo homered for the Angels off Fausto Carmona (0-2), who gave up four hits in 7 2-3 innings. The right-hander struck out six and walked three.

"Fausto threw the ball great tonight," Hafner said. "It's good to see. That's two really good outings in a row for him, so it looks like he's back on track and he should have a great season."

After giving up a leadoff single to his first batter, Carmona allowed only one other ball to be hit out of the infield through the fifth inning — a leadoff homer in the third by Bourjos that landed in the lower seats in the left-field corner.

In the seventh, Trumbo hit a drive just inside the left-field pole for his first big league home run. All but one of the Angels' 14 homers this season have come with the bases empty.

"This guy does not give up home runs," Scioscia said of Carmona. "He's got a heavy sinker. And if he's getting the ball down, it's tough to dig out. But he got one up to Peter, and Mark dug one out and just hooked it down the left field line. It was good to see the bottom third of the lineup do something tonight."

Angels left fielder Vernon Wells, acquired in a trade from Toronto in January, got the day off after going 4 for 44 over his first 10 games with his new club. Scioscia kept him out of the lineup to give him a chance to "let a little air out." Over the previous five seasons with the Blue Jays, the 13-year veteran and three-time All-Star had a cumulative average of .332 in his first 10 games.

"I think every hitter has had rough spots. I mean, there have been 4-for-40s in a lot of players' history," Scioscia said. "When you're with a new team and the first stats that are out there are naked like that, there's going to be a lot of attention on it. But I don't think it's because of the fact that he's with a new team. He hasn't tried to bring an 'I'm-gonna-show-you-guys-what-I-can-do' attitude.

"The reality of it is that he's just trying to find some timing," Scioscia added. "He's a little bit off, as far as his balance ... But he'll find it. There's no doubt about it. But he wants to contribute now, absolutely, and I think that leads to a little bit of frustration. But he's confident in his talent and we are, too."

NOTES: A ceremonial first pitch was thrown by Jim Fregosi, a six-time All-Star shortstop with the Angels who managed the team to its first AL West title in 1979. ... The Angels recalled OF Reggie Willits from Triple-A Salt Lake and optioned OF Chris Pettit to their Pacific Coast League club. ... Hafner is batting .201 with eight homers, 29 RBIs and 52 strikeouts in 47 games against the Angels since hitting a career-high three homers against them on July 20, 2004 at Anaheim.