HOUSTON -- Six-foot-four, 250-pound slugger Chris Carter isn't the kind of player who normally hits infield singles.
Of course, he was helped by speedy rookie George Springer's hustle in beating the throw to second base on the play.
"That was a big hit for us and we needed that run right there in that situation," Carter said. "I was just glad I was in the situation to come through for us."
Jason Castro hit a two-run homer in the third inning to help Houston to the victory.
Jose Altuve doubled to open the eighth and chase Red Sox starter Jake Peavy (1-8). Altuve advanced to third on a groundout by Castro before Springer was intentionally walked and Jon Singleton struck out.
"That's really good," Altuve said of Springer on the play. "He's a guy that can do everything and that was the big thing in the game."
Josh Fields (2-4) pitched 1 2/3 scoreless innings for the win and Chad Qualls got two outs for his 10th save. The Astros turned a double play to end the game and Boston challenged the play at first, but it was upheld.
Castro gave Houston an early lead with his home run in the third inning before David Ortiz cut it to 2-1 with a shot in the fourth. He has now hit at least 20 homers in 13 straight seasons.
The Red Sox tied it on a sacrifice fly by Dustin Pedroia in the seventh.
Peavy allowed six hits and three runs with a season-high nine strikeouts in seven-plus to extend his career-long losing streak to eight games. He hasn't won since April 25 as the Red Sox have struggled to score when he's on the mound.
"I think his run support is probably less than three runs a game on the year, and the way he's pitched isn't reflected in his won-loss record," manager John Farrell said. "He can only control so much, and what he was able to control (Saturday), he was outstanding at, and that was leaving guys in scoring position."
Houston starter Brett Oberholtzer allowed two runs and tied a season high with 11 hits in 6 1/3 innings. He was recalled from Triple-A Oklahoma City before the game for his fourth stint with the Astros this season.
Carter, who homered twice on Friday night, extended his career-best hitting-streak to eight games and has six homers and 10 RBIs in that span. Altuve finished with two hits and leads the majors with 130.
Altuve doubled with two outs in the third inning before Castro's homer to right field, which sailed just out of reach of leaping right fielder Mookie Betts and into the seats, gave Houston a 2-0 lead.
Ortiz sent the first pitch of the fourth inning several rows back into the seats in right field to get Boston within one.
Jackie Bradley Jr. singled to start the fifth inning before consecutive singles by Holt and Pedroia loaded the bases with one out. Oberholtzer escaped the jam when Ortiz grounded into a double play to end the inning.
Castro hit a leadoff triple in the sixth inning, but Houston came away empty-handed when Springer grounded out followed by back-to-back strikeouts by Singleton and Carter.
Bradley and Betts hit back to back singles to start the seventh before Oberholtzer was replaced by Fields with one out.
Pedroia's sacrifice fly came next to tie it before Houston intentionally walked Ortiz. Fields limited the damage by striking out Mike Napoli.
Houston placed RHP Collin McHugh on the 15-day disabled list retroactive to July 7 with a problem with a nail on his middle finger to make room on the roster for Oberholtzer. ... Houston OF Dexter Fowler, on the disabled list with a back strain, said Saturday that he is doing better, but isn't sure when he'll be ready to play again. "You don't want to get it flared back up and then you'll miss more time," he said. "So just ... relax and try to get it healed."