Carter's blast capped a five-run outburst that put the Astros ahead 6-3 and Houston hung on down the stretch to break a six-game losing streak in the opener of a three-game series.
Jose Altuve went 2-for-3 with a solo homer and two RBI in the victory.
Jordan Lyles (1-0), making his second start since being called up from the minors this month, allowed three runs on four hits over five innings to notch the victory.
Jose Veras recorded his third save after the Angels had scored three times against the Astros bullpen.
Los Angeles starter C.J. Wilson (3-1) struck out 12 over 6 1/3 innings but was tagged for seven runs on seven hits.