DETROIT — For the second time in five days, Miguel Cabrera was at the plate with the winning run on base and the Detroit Tigers down to their final out.
This time, he lifted a deep flyball to right-center field with the bases loaded, but it didn't carry quite far enough, and Houston's Brandon Barnes made the catch against the wall.
Barnes' catch preserved a 7-5 victory for the Astros on Wednesday after Houston scored two runs in the top of the ninth inning. The Tigers won their first six meetings with the Astros this year by a combined 50-12.
"That was the perfect ending — Miggy at the plate with the bases loaded and two out," Detroit outfielder Torii Hunter said. "He hit the ball really good but it just didn't work out for us."
Carlos Corporan hit a tiebreaking double in the ninth for the Astros. Jose Veras pitched the bottom of the ninth for his fifth save in seven chances. He walked two and hit a batter, but Cabrera's drive came a few feet short of winning the game.
On Saturday, Cabrera came up with two on and grounded out to end a 7-6 loss to Cleveland. The Detroit slugger has 41 RBIs already this season, thanks mostly to an incredible stretch with runners in scoring position. Coming into Wednesday's game, Cabrera was 25 of 50 with runners in scoring position — 12 of 19 with two outs.
Barnes ran down Cabrera's deep fly.
"I just knew if he hit it out there, I'd have to get a good bead on it," Barnes said. "Just try to get under it and not stop until the catch was made."
Hector Ambriz (1-2) got the win. Houston starter Dallas Keuchel allowed five runs — four earned — and seven hits in 5 2/3 innings.
Avisail Garcia, 21, playing center field because of Austin Jackson's hamstring injury, hit his first major league homer in the second, a three-run shot to left-center that gave the Tigers a 4-1 lead. But starter Max Scherzer couldn't hold it. He allowed five runs and five hits in seven innings. He struck out seven and walked three.