HOUSTON -- There were zero complaints about the 71-pitch outing by Miami Marlins right-hander Tom Koehler on Saturday night.

Not with a rested and able bullpen poised to perform and not after Koehler took a screaming line drive off the shoulder in the third inning yet soldiered on to finish five inning.

Four Miami relievers combined to work four scoreless innings as the Marlins wrapped up their second consecutive road series victory with a 7-3 win over the Houston Astros at Minute Maid Park.

Marlins left-hander Dan Jennings relieved Koehler (7-7) to open the sixth inning and, along with right-hander A.J. Ramos, bridged the gap through the sixth and seventh before left-hander Mike Dunn worked around a two-out walk of Kike Hernandez to cap a scoreless eighth.

By the time Chris Hatcher took the mound for Miami (50-53) in the ninth, the Marlins' lead had doubled to four runs thanks to a two-run homer from center fielder Jordany Valdespin, his first home run on the season. All told, Jennings, Ramos, Dunn and Hatcher surrendered three hits and two walks while striking out four after Jennings inherited a 5-3 lead.

"They did a great job," Marlins manager Mike Redmond said of his quartet of relievers. "These (Astros hitters) are aggressive in the zone, and when you get behind them and you have to throw fastballs, they can make you pay. We did a good job of limiting situations where they could do some damage and we just kept competing and making our pitches, and that was good to see."

With the loss, Houston (42-62) has dropped four consecutive series.

Entering his fourth start of the month with more walks (10) than strikeouts (nine) in July, Astros right-hander Jarred Cosart (9-7) immediately walked the first batter he faced in Marlins left fielder Christian Yelich, who later scored on a Casey McGehee single.

Another leadoff walk spelled additional trouble for Cosart in the second inning, but this time the Marlins piled on four runs and nearly chased Cosart from the game. Miami catcher Jarrod Saltalamacchia walked to open the inning and scored when Yelich singled to left field with one out.

Two batters later, Marlins designated hitter Giancarlo Stanton lined a double past diving Astros shortstop Marwin Gonzalez and into the left-center field gap, clearing the bases and giving the Marlins a 5-2 lead.

"You look at those guys," Astros manager Bo Porter said. "They got the big two-out hit with Stanton there to clear the bases, so that's the difference in the ballgame."

Cosart needed 36 pitches to escape the second yet somehow managed to pitch three batters into the sixth without surrendering another run.

"Made a huge adjustment in the last four innings," Cosart said. "Obviously, it's what I need to build on. The biggest at-bat of the game was in the second inning with Yelich. I went 0-2 to 3-2 and then I had to throw him a strike. I couldn't walk him with the bases loaded. He got a little slap single going the other day. He brought in a run to tie the game."

Koehler allowed a two-run homer to Astros catcher Jason Castro in the first inning and a run-scoring single to designated hitter Chris Carter that scored Jose Altuve in the fifth. It was Carter who stroked the line drive that ricocheted off Koehler and floated to shortstop Adeiny Hechavarria, who got the first out of an inning in which Koehler escaped unscathed after allowing the first two batters to reach via hits.

The Astros tagged Koehler for nine hits but stranded five runners, four in scoring position.

"I walked that tight rope that whole day and fortunately enough, I stayed balanced enough to get through five," Koehler said. "I handed it over to the bullpen who did a great job tonight."

NOTES: Astros manager Bo Porter announced that RHP Collin McHugh would be reinstated from the 15-day disabled list and will start the series finale against the Marlins on Sunday. McHugh was placed on the DL with a right middle finger avulsion on July 12 (retro to July 7). ... The Marlins improved to 16-for-20 on replay challenges after Friday's sixth-inning challenge when Astros 2B Jose Altuve was called safe after swiping second. The call was overturned after replay review. The Marlins lead the majors in overturned calls and replay effectiveness (76.2 percent). ... Astros shortstop Marwin Gonzalez (right hamstring) was back in the starting lineup after missing the series opener. Gonzalez had started 12 of the previous 14 games and was hitting .295 with two home runs and 10 RBIs in his previous 19 games dating to June 28.