A night after rallying from a five-run deficit to win, the Red Sox overcame a three-run deficit Wednesday, using Stephen Drew's three-run homer in the ninth to beat the Houston Astros 7-5.
It was the sixth time in its last seven victories that Boston has come from behind to win.
"This team has done it all year," Drew said. "Everybody has fun, but everybody knows their role. I think that makes it easier on guys. Everybody has been clutch in late innings. That is what good teams do."
The home run was Drew's first go-ahead homer in the ninth inning or later since 2008. Drew, who came off the disabled list on July 20, also hit a game-ending single to beat Seattle on July 31.
"He was starting to get in the flow of things once he came back and got some at-bats under his belt after the DL stint after the All-Star break," Boston manager John Farrell said.
"To have that kind of bat at shortstop down in the bottom third of the order, it lengthen things out. He's swinging with a lot of confidence right now against both lefties and righties."
David Ortiz had four hits and Jonny Gomes also hit a home run for the Red Sox, who have won seven of their last nine games.
Robbie Grossman had two hits, including a homer, and Jason Castro added two hits for the Astros, who have dropped six of seven and are a major league-worst 37-76.
Ortiz led off the ninth with a single and pinch-runner Drake Britton moved to second on Gomes' one-out walk before Drew's home run to right, his ninth of the season, off Josh Fields (1-2).
"I got ahead of him," Fields said. "I threw a pretty good changeup and tried to come back with a breaking ball and left it up. Should've buried it down a bit more and it sort of just came out of my hand, and he put a good swing on it."
Houston's bullpen has 18 blown saves this season.
"It's one of those things where you sit there and ask yourself, 'Could we do something different?'" Houston manager Bo Porter said. "You put guys in situations where you feel they have the best opportunity to be successful, and tonight is another example of us just not getting it done."
Junichi Tazawa (5-3) threw two scoreless innings for the win. Koji Uehara pitched the ninth for his 11th save.
Grossman tied it at 2 in the third with a two-run shot to right. He extended his hitting streak to 10 games with his third home run of the season and second in two games.
Jose Altuve gave the Astros their first lead of the night in the sixth at 3-2 with a run-scoring single off a diving Brock Holt's glove, scoring Grossman, who had led off the inning with a double and moved to third on a wild pitch.
Altuve scored on Castro's double down the right-field line, sliding in ahead of Jarrod Saltalamacchia's tag at the plate. Castro, who had moved to third on the throw home, scored on Marc Krauss' sacrifice fly to make it 5-2.
Houston got out of a bases-loaded, one-out jam in the sixth, as Wesley Wright stuck out Jacoby Ellsbury before Josh Zeid struck out Shane Victorino on a checked swing to end the inning.
But Gomes started the comeback with a two-run home run in the seventh off Zeid.
Victorino was ejected by third base umpire Brian Knight with one out in the seventh after running out of the dugout to argue a call. Victorino refused comment after the game.
Ryan Dempster allowed five runs and seven hits while striking out seven over six innings. Dempster has allowed 12 runs in 12 innings over his last two starts.
"Just a few pitches ended up being a two-run home run and a big double," Dempster said. "I threw a lot of really good, quality pitches tonight. That's probably the best I've felt in a while. Unfortunately, I did not have much to show for it, but we got a win, so that's the most important thing."
Holt gave the Red Sox a 1-0 lead in the second on a groundout, scoring Gomes. L.J. Hoes kept the Red Sox from scoring more, making a diving catch on Ellsbury's drive on the warning track to end the inning.
Jarred Cosart had his fourth straight no-decision after allowing two runs and seven hits with five walks and three strikeouts in five-plus innings.
Porter was ejected in the ninth by home plate umpire Mark Carlson for arguing a foul tip third strike call.
NOTES: Houston selected the contract of RHP Jorge De Leon from Triple-A Oklahoma City and optioned RHP Jose Cisnero there on Wednesday. The 25-year-old De Leon has not allowed a run in five relief outings over 7 1-3 innings for Oklahoma City. ... Houston DH Chris Carter had a second straight game off on Wednesday. Porter said he wanted to give Carter some time to work in the cage and try to figure out a way to get back on track after hitting .107 over his last 10 games. Porter said Carter will be back in the lineup on Friday. ... Houston SS Jonathan Villar sat out on Wednesday with a sprained left thumb. Porter said he'll have an MRI on Wednesday and he would know more about his availability after that.