Jed Lowrie and Eric Sogard added two hits apiece for the A's, who have won 11 of 13. Oakland has the best record in the American League despite a shaky defense that committed its AL-leading 19th error.
Chavez (1-0) allowed four hits over six innings and retired seven of the final eight batters he faced after giving up a solo home run to Marwin Gonzalez in the fourth. Chavez struck out three and walked one to lower his team-leading ERA to 1.38 through four starts.
Gonzalez had two hits for the Astros. Houston has dropped seven straight.
Donaldson hit a two-run home run off Houston starter Brad Peacock in the first and added an RBI double in the seventh. He also had a two-out double in the fifth.
That helped offset an early miscue by Oakland's third baseman. Donaldson bobbled George Springer's grounder in the third, extending the team's worst defensive stretch since 2011.
Lowrie, the shortstop, also dropped a high popup by Springer in the eighth, marking four straight games in which the A's have committed at least two errors. Overall, Oakland has made an error in nine consecutive games.
Chavez didn't let it bother him and overcame a shaky first inning to notch his first win of the season. He has allowed just one earned run in each of his four starts.
Three of Houston's first four batters reached base before Oakland's young right-hander settled down. After catcher John Jaso threw out Jose Altuve trying to steal third, Chavez got Marc Krauss to fly out.
The Astros also had two runners on with two outs in the third following Donaldson's fielding error but Chavez retired Krauss on a deep fly to right.
Houston managed just one baserunner against Chavez after that, a one-out walk to Dexter Fowler in the fifth.
Jim Johnson, still trying to win back the A's closer spot, replaced Chavez to start the seventh and retired the first two batters before walking Altuve. After Fowler reached when his sharp comebacker deflected off Johnson, reliever Sean Doolittle came in and got Jason Castro to fly out to left.
Luke Gregerson pitched the ninth for his third save.
Donaldson's two-run home run off Peacock (0-2) in the first put the A's up 2-0. Lowrie singled with one out before Donaldson hit the 3-1 pitch to left.
Gonzalez, who singled off Chavez in the second, hit a two-out home run in the fourth to cut it to 2-1.
Donaldson doubled in Coco Crisp in the seventh and Lowrie scored on a passed ball in the same inning.
Peacock struck out four and walked three in his first start of the season. The former Oakland prospect, who began the year in Houston's bullpen, allowed five hits over five innings.
NOTES: Springer singled in the first and has at least one hit in his first five major league games. Springer was called up from the minors on Wednesday. ... Oakland slugger Yoenis Cespedes left the game with a bruised right heel. ... Gonzalez's home run was his first since June 5, 2013. ... Oakland OF Sam Fuld was claimed off waivers by Minnesota. ... Houston LHP Dallas Keuchel (1-1) pitches the series opener against Seattle on Monday. ... RHP Dan Straily (1-1) faces the Rangers for Oakland is 3-1 in six career starts against Texas.