Mark Trumbo smacked a two-run double and Alberto Callaspo drove in the winning run on a sacrifice fly in the game.
The controversy came when, in the top of the seventh and with his side leading 5-3, Astros manager Bo Porter brought left-handed pitcher Wesley Wright on to face JB Shuck.
But when it became clear right-handed batter Luis Jimenez was going to pinch hit, Porter yanked Wright and replaced him with right-handed pitcher Hector Ambriz.
MLB rules state a pitcher cannot be replaced before he has faced a batter unless he is injured or unwell, and Angels boss Mike Scioscia argued at length before later lodging an official protest.
The point proved moot in the end, however, as Trumbo and Callaspo led a rally in the eighth off Ambriz which turned the game in the Angels' favour.
Mike Baxter pinch-hit a walk-off single for the second time in three days as the New York Mets beat the Pittsburgh Pirates 3-2.
Having pulled the same trick in the 10th against the Chicago White Sox on Tuesday, Baxter singled to score Marlon Byrd in the ninth against Pittsburgh and earn the Mets another narrow win.
Bird and Ike Davis drove in the other runs for the Mets, while Pedro Alvarez homered for the Pirates.
Jason Kipnis, Nick Swisher and Mark Reynolds all homered as the Cleveland Indians left no room for doubt with a 9-2 win over the Oakland Athletics.
The victory came a day after they beat the A's 4-3 with the help of a controversial call, later acknowledged to be incorrect by MLB, which denied Oakland a game-tying home run.
Pitcher John Lackey's throwing error in the sixth proved pivotal as the Minnesota Twins beat the Boston Red Sox 5-3.
The Red Sox were 2-1 up when Lackey, attempting to start a double play, threw wildly into centre field, allowing two runs to score - before Oswaldo Arcia homered to add two more unearned runs.
The Tampa Bay Rays walked off against the Toronto Blue Jays as Luke Scott's bases-loaded walk in the 10th scored the winning run in a 5-4 victory over the Toronto Blue Jays.
Ryan Zimmerman had three hits in the Washington Nationals' 5-4 win over the Detroit Tigers and Robinson Cano homered in the New York Yankees' 3-1 win over the Colorado Rockies.
The Kansas City Royals beat the Baltimore Orioles 6-2, the Arizona Diamondbacks edged out the Philadelphia Phillies 2-1 and the Atlanta Braves were 6-3 winners over the San Francisco Giants.