Houston scored five times over the second and third innings and Brad Peacock turned in a solid six-inning performance to bring the Astros their third straight win.
It was Houston's 50th victory of the season and it took them 146 games to reach that plateau.
Marc Krauss doubled home a run in the second and then scored on a single by Carlos Corporan. Brett Wallace delivered an RBI single in the third, followed by Carter's two-run single.
Peacock (5-5) allowed a run on three hits with one walk, after which Kevin Chapman and Joshua Zeid held the Mariners scoreless despite allowing four base runners over the final three frames.
Zeid worked the final 1 1/3 and picked up his first major league save.
Brandon Maurer worked only three innings while taking the loss, giving up five runs on seven hits.