Chris Carter's three-run homer put Houston ahead in the third, and the Astros held on for a 7-6 win over the Los Angeles Angels on Tuesday night.
The win ends a six-game skid for the Astros. The road woes continued for the Angels, who have dropped eight of their past 10 away from Anaheim.
Jose Altuve also homered for Houston, and the Astros took advantage of three errors by catcher Hank Conger to score five unearned runs.
Houston trailed by two entering the third inning before Carter's team-leading seventh homer capped a five-run inning and gave the Astros a 6-3 lead.
Mark Trumbo hit his ninth home run for Los Angeles, a three-run shot in the first inning.
Howie Kendrick hit a solo homer off Dallas Keuchel in the sixth, and Alberto Callaspo got Los Angeles within 7-6 with a two-run blast off Travis Blackley in the eighth.
Jose Veras threw a perfect ninth for his third save.
The Angels' 11-21 record ties their worst start through 32 games in franchise history. The last time they had won just 11 games through the first 32 was in 1976.
It was a much-needed win for the Astros, who were coming off a miserable four-game series with the Tigers where they were outscored 37-8.
Houston's Jordan Lyles (1-0) allowed four hits and three runs with six strikeouts in five innings in his second start of the season.
C.J. Wilson (3-1) allowed seven runs — two earned — and seven hits and tied a career high with 12 strikeouts.
The Astros, who entered the game leading the majors with 323 strikeouts, added 13 more to that total on Tuesday night.
Conger became the first catcher for the Angels to make three errors in a game, and the first Angel to do it since Maicer Izturis in 2005.
He made back-to-back miscues in the third inning and another in the seventh. The third one came on a pickoff attempt when he bounced the ball off the helmet of J.D. Martinez, who was batting.
Robbie Grossman stole third base and Altuve stole second before Grossman scored on the error to make it 7-4. Altuve was out at home on the play.
Trumbo's three-run homer to the Crawford Boxes in left field made it 3-0 in the first inning. Erick Aybar hit a leadoff double before a one-out walk by Albert Pujols before Trumbo's shot. It is his sixth homer in the past eight games.
Altuve, who turned 23 on Monday, responded to two days rest by knocking a solo homer in the first inning to cut the lead to 3-1. Altuve sat out for the first time this season on Sunday before Houston had a day off on Monday.
This series is only the second time the Angels have been to Minute Maid Park and their first since June 2004. They'll get plenty acquainted with it this season as they make two more trips to Houston.
Houston's big third inning was made possible by the two errors by Conger. Brandon Barnes singled to left field to start the inning before a sacrifice bunt by Grossman. But Conger fumbled the ball for an error that allowed Grossman to reach.
Another error by Conger on a pickoff attempt allowed Barnes to advance to third base before a double by Jimmy Paredes sent him home to make it 3-2.
Altuve followed with an RBI single to tie it at 3-3.
Wilson struck out the next two Astros before Carter's homer, which landed in between the first and second rows in the Crawford Boxes, to give Houston a 6-3 lead.
Wilson walked Ronny Cedeno after that, and finally got out of the inning when he struck out Matt Dominguez — the ninth batter of the inning.
NOTES: Angels manager Mike Scioscia said ace Jered Weaver, who has been out for almost a month because of a broken bone in his left elbow, remains more than two weeks away from returning. Weaver is throwing long toss and should throw from a mound this week. Scioscia said he'll have to build up his pitch count in rehabilitation starts before he can be activated. ... This series continues on Wednesday when Houston's Bud Norris opposes right-hander Joe Blanton.