The Astros who have the worst record in the majors (50-96) won all three games in Seattle for their third sweep of the season, and first since early June.
In the lone bright spot for the Mariners, Kendrys Morales hit the 100th home run of his career. Seattle has lost four straight at home and starts a 10-game trip on Friday.
Peacock (5-5) allowed four hits, struck out four, walked one and retired the final nine batters he faced. The right-hander has pitched into the sixth inning or deeper five times in his six starts since being called up from Triple-A on Aug. 4. In his five previous starts for the Astros all in April he never got past the fifth.
Josh Zeid got out of an eighth-inning jam and finished the ninth for his first career save.
Brandon Maurer (4-8) allowed five runs all scoring with two outs and seven hits in three innings.
It was the first major league start for Maurer since May 28. The rookie right-hander started the season in the Mariners' rotation but was sent down to Triple-A on May 29 and worked out of the bullpen since being called back up in late July. He was pressed into duty to replace ace Felix Hernandez, who was originally scheduled for the start but was scratched Monday with a minor oblique strain.
As bad as the line was Wednesday, it represented an improvement over Maurer's last start against the Astros on April 9, when he gave up six hits and seven hits and didn't get out of the first inning.
Maurer struck out the first two batters in a perfect first inning. In the second, the Astros took a 2-0 lead on a run-scoring double by Marc Krauss and Carlos Corporan's RBI single.
Houston added three more in the third. Jonathan Villar led off with a single, and with two outs Brett Wallace drove him in with a single, Matt Dominguez had a ground-rule double and Carter's single scored two runs.
Morales led off the fourth inning with his homer to right-center field, his 21st of the season.
The Mariners loaded the bases with two outs in the eighth, but Zeid came on and got Raul Ibanez to pop up to third to end the inning.
Villar added a run-scoring single in the ninth.
NOTES: Houston manager Bo Porter said RHP Paul Clemens, who was scratched from his scheduled start Sunday, has recovered from a blister on his right hand and will start against the Angels on Sunday. ... Seattle OF Abraham Almonte came out of Tuesday's game with stiffness in his legs and was out of the lineup Wednesday as well, although manager Eric Wedge said he expects Almonte to be ready for Friday's game in St. Louis. ... Wedge had no problems with the players-only meeting held by the Mariners after Tuesday's 13-2 loss to the Astros. "I think it's good. I always welcome that. When the players take responsibility for each other and for themselves, I think it says a great deal," Wedge said.