Astros 12, Rangers 7: Jon Singleton homered and drove in four runs and Marwin Gonzalez highlighted a six-run second inning with a bases-loaded triple as visiting Houston halted a seven-game losing streak.Alex Presley homered and drove in a pair and Carlos Corporan collected three hits and an RBI as the Astros beat the Rangers for only the 14th time in 56 games since the start of the 2008 season. Jarred Cosart (9-6) improved to 5-1 in his last six starts despite getting roughed up for six runs - five earned - on nine hits over five innings. Adrian Beltre homered and had two RBIs and Elvis Andrus delivered a three-run double for Texas, which tumbled to its eighth defeat in nine games. Miles Mikolas (0-1) was pummeled for nine runs and 12 hits over 3 1/3 innings in his second start of the season.Houston opened the second inning with six straight hits, including RBI singles from Corporan and Enrique Hernandez to drive in the first two runs before Gonzalez cleared the bases with a triple up the alley in right-center and scored on Presley's single to make it 6-0. Texas began to chip away, pushing across an unearned run in the second before Beltre doubled home a run in the third.Singleton ended Mikolas' night with his three-run homer in the fourth, a 425-foot shot to right-center for a 9-2 edge, but the Rangers rallied on Andrus' three-run double in the bottom of the inning and Beltre's solo shot to lead off the fifth. Presley homered in the sixth before the Astros tacked on two more runs in the eighth on L.J. Hoes' sacrifice fly and Singleton's RBI double.GAME NOTEBOOK: Presley left the game in the eighth inning with a strained right oblique. ... Astros 2B Jose Altuve went 2-for-5 to give him a major league-leading 124 hits, breaking Bob Watson's franchise record for the most hits before the All-Star break. ... Beltre extended his hitting streak to 11 games and has homered in three of the past four games. ... Corporan started in place of C Jason Castro, who was not in the lineup due to armpit discomfort.