The Braves, who snapped a two-game skid, were able to escape late jams to beat the Astros for the 16th time in the last 20 meetings.
Aaron Harang (6-6) allowed six hits and a pair of runs over six frames. Harang has topped the Astros in seven straight starts since his last loss against them, April 28, 2009 when he pitched for Cincinnati.
George Springer hit a solo homer for the Astros, losers in seven of their last eight contests.
Feldman (3-5) surrendered four hits and three runs over six innings for the Astros, who started a nine-game homestand.
Anthony Varvaro was in trouble in the seventh for the Braves, but got out of the inning unscathed. Jonathan Villar walked with one out, and two runners were in scoring position after Jose Altuve singled to left with two outs. He went to second on the throw to third. Springer then grounded out to third.
Jordan Walden walked Matt Dominguez with one out in the home eighth. With two outs, Chris Carter singled to center to place runners at the corners. Pinch- runners Alex Presley stole second, but Robbie Grossman went fishing at a high pitch to strike out and cap the inning.
Dexter Fowler reached first on Ramiro Pena's fielding error in the ninth. Altuve, who reached via fielder's choice, stole second, but Craig Kimbrel fanned Springer to end the game and record his 22nd save.
Springer went deep for the 14th time this season by homering to center in the opening inning.
B.J. Upton homered to left in the third, and his younger brother hit one over the wall in left-center in the fourth for a 3-1 lead.
Villar's single to right scored Jason Castro in the home fourth.