Yoenis Cespedes went deep in the fourth and Jed Lowrie blasted a solo shot in the seventh for an insurance run.
Dan Straily was stellar in his seven innings of work, allowing just two hits, one walk, while striking out seven.
The A’s had plenty of other chances against Astros’ starter Brett Oberholtzer, as they pounded out seven hits against him but only scored the two runs. They ran themselves out of a potential scoring opportunity in the third. With runners on first and second and two out, Josh Donaldson singled to right. Jed Lowrie got caught up between second and third, and for some reason, Kurt Suzuki decided to head home after stopping at third. The A’s catcher was tagged out easily at the plate.
Oakland also had runners in scoring position in the first and sixth innings, but failed to capitalize.
The Astros got a run back in the eighth on an RBI forceout by Brandon Barmes, then he stole second to put the tying run in scoring position. However, with two outs, Barmes tried to steal third, and was picked off by Sean Doolittle to end the threat.
Doolittle would came back out to close in the ninth inning, and worked around a one-out single to give the A’s the win.
Oakland is now a season-high 22 games over .500 as they maintain their lead over the Rangers in the AL West.