Joey Gallo homered and drove in three runs, Rougned Odor and Elvis Andrus also homered and the Texas Rangers stopped a season-worst four-game skid, beating the Houston Astros 10-4 on Thursday.
After twice giving up leads earlier in the series, the Rangers went ahead 4-0 in the first inning and used the bullpen to help avoid a four-game sweep.
Marwin Gonzalez homered in his fifth straight start for Houston.
Odor's homer off Joe Musgrove (1-3) came with one out in the first. Singles by Nomar Mazara, Carlos Gomez and Gallo made it 2-0 with two outs and Mike Napoli hit a two-run double.
Gallo padded the lead with a two-run homer in a three-run eighth inning and Andrus had a solo shot in the ninth.
A.J. Griffin (3-0) picked up the win, yielding one earned run in five innings in his return from the disabled list because of gout in his left ankle.
The Astros had some chances late to cut the deficit, but failed to get a big hit when they needed it on a day when they went 2 for 14 with runners in scoring position.
An RBI single by Evan Gattis cut the lead to 4-1 in the first inning.
Texas added a run in the second inning on a sacrifice fly by Mazara. Andrus scored on a balk by Brad Peacock to make it 6-2 in the fifth.
A bases-loaded sacrifice fly by Carlos Beltran cut the lead to 6-3 before Josh Reddick walked to load the bases again. Jeremy Jeffress took over and Jose Altuve grounded into a double play to allow Texas to limit the damage.
A sacrifice fly by Gonzalez made it 6-4 in the seventh inning, but Keone Kela struck out Beltran with the bases loaded to keep Houston from getting any closer.
Astros: RHP Collin McHugh (right elbow injury) will travel with the team on Thursday and begin playing catch at a short distance sometime this weekend. ... OF Teoscar Hernandez, who injured his left leg in a collision with Altuve last week, is expected to begin a minor league rehabilitation assignment sometime in the next week.
Gonzalez launched a solo shot to right-center field in the fourth. He leads the Astros with nine home runs and has six in the last five games after hitting two, including his first career grand slam, on Tuesday night.
Rangers: Yu Darvish will start for Texas in the opener of a three-game series at Seattle on Friday. Darvish will be pitching on an extra day of rest after the Rangers pushed him back after he threw 115 and 126 pitches in his last two starts. He is 0-3 with a 7.71 ERA in three career starts at Safeco Field.
Astros: Dallas Keuchel looks to improve to 6-0 when he starts the first game of a three-game series against the Angels on Friday. Keuchel was the American League pitcher of the month for April after posting a 1.21 ERA in six starts.