Maxwell's shot in the fifth inning erased a 3-2 deficit and put Houston ahead for good, while Altuve's homer in the eighth helped turn back a late Chicago rally.
Each finished with three RBI. Snyder chipped in with a two-run double during a big sixth inning for the Astros, who took the rubber match of a three-game series at U.S. Cellular Field.
Luke Harrell (6-4) held on for the win despite surrendering five runs on six hits over 7 1/3 innings. He walked one and fanned five.
Chisox starter Phil Humber (2-4) struck out nine but was tagged with six runs (five earned) on six hits over 5 1/3 innings.