Adam LaRoche and Nate McLouth hit solo homers off Felipe Paulino for Atlanta.
Vazquez (12-9) allowed three hits and Rafael Soriano gave up a run in the ninth, but earned his 22nd save as Atlanta snapped Houston's four-game winning streak.
Miguel Tejada led off the ninth with a triple to center and scored on Hunter Pence's single. Geoff Blum grounded into a double play and pinch hitter Aaron Boone lined out to end it.
Paulino (2-8) gave up four hits and struck out six in six innings to lose his fourth straight decision. The Astros have lost his past seven starts.
Vazquez fanned Astros leadoff man Michael Bourn to reach 200 strikeouts for the third consecutive season and fifth time in his career. Vazquez struck out five of the first 10 hitters he faced.
LaRoche homered into the Astros' bullpen in the second, his 21st of the season.
LaRoche came in hitting .342 since joining the Braves in a July 31 trade with Boston.
Paulino missed the strike zone on 25 of his first 50 pitches. .
McLouth homered to right with one out in the fifth, his 17th of the season. Martin Prado followed with a single to center, but Paulino picked him off with a quick move to first baseman Lance Berkman.
Vazquez retired 11 in a row after Carlos Lee's single leading off the second. Blum lined a two-out single to left in the Astros' fifth, but Humberto Quintero flew out on Vazquez's next pitch.