Atlanta has now won two second consecutive games after opening the season with four losses.
Ross, the backup catcher, drove in Chipper Jones and Dan Uggla with a double to center in the fourth, giving the Braves a 3-1 lead.
Heyward, who finished with three hits, added an insurance run with his solo shot to right in the eighth.
The performance by Ross came a night after Jones came off the disabled list and hit a two-run homer to lead the Braves to their first win of the year after an 0-4 start.
Atlanta starter Randall Delgado (1-0) struck out six in five innings while yielding two runs and five hits.
Houston left-hander Wandy Rodriguez (0-1) gave up four runs, three earned, and six hits in five innings.
The Astros loaded the bases in the fourth and seventh, but got just one run out of those opportunities. They also put runners at first and third with two outs in the ninth before Craig Kimbrel struck out Carlos Lee for his second save.
Atlanta increased its lead to 6-3 when Martin Prado scored on right fielder Justin Maxwell’s throwing error in the ninth.
The Astros trimmed the Braves’ lead to 4-3 in the seventh, but couldn’t come up with a big hit to take control. They loaded the bases with one out, but Eric O’Flaherty got J.D. Martinez to fly out to right. Lee walked to force in a run before pinch hitter Matt Downs bounced into a fielder’s choice.