Díaz tied it with an RBI single in the first and gave the Astros the lead with a run-scoring single in the third. Houston was up by three in the seventh when he sent home another run with a double to make it 5-1.
Díaz has has 19 hits and 14 RBI in the last 13 games after missing about six weeks with a fractured hand.
"You've really seen since he's been back how much we've missed him," manager Dusty Baker said. "We certainly missed his bat and his defense and the steadiness you can count on every day."
Díaz is happy to be contributing after missing so much time.
"The bottom line is to be in the lineup and help the team win," he said. "We are in this together. Everybody does their job and helps to get the wins, so I'm glad for that."
Houston's Framber Valdez (8-3) allowed four hits and one run while striking out eight in six innings.
Colorado starter Antonio Senzatela (2-9) tied a season high by permitting nine hits. He allowed three runs and a walk in six innings to extend his losing streak to four games.
"I thought he threw better as the game went on," manager Bud Black said. "He made some adjustments."
Connor Joe hit a leadoff single and Trevor Story singled on a grounder to left field with one out. The Rockies took the lead when Joe scored on a single by C.J. Cron. But the Rockies had trouble stringing together anything after that to lose their second straight game following a four-game winning streak.
"Our guys have been battling... trying to get a hit," Black said. "It's not happening. We've got to do better."
Michael Brantley and Carlos Correa hit consecutive singles with one out in the bottom of the inning first. There were two outs in the inning when Díaz singled on a liner to left field to score Brantley and tie it at 1-all.
Yordan Alvarez doubled with one out in the third and the Astros took the lead when he scored on a single by to center field by Díaz.
Jake Meyers started Houston's sixth with a single to right field, stole second base and advanced to third on a fly out by Taylor Jones. Meyers scored on a sacrifice fly by Martín Maldonado when he slid in just before catcher Elias Díaz could tag him to make it 3-1. He was initially called out, but the Astros challenged the call, and it was overturned.
Brantley singled with no outs in the seventh inning for his third hit and scored on an RBI double by Correa before the third hit by Díaz.
Astros: 3B Alex Bregman (strained left quadriceps) expects to return to his rehabilitation assignment on Friday. Bregman, who has been out since June 17, returned to Houston on Sunday after his 20-day rehabilitation window ended.
Wednesday was Brantley's 15th game this season with at least three hits, which leads the majors. He is hitting .332, which also ranks first in MLB.
Rockies: Germán Márquez (10-8, 3.42 ERA) is scheduled to start for the Rockies on Thursday night in the opener of a four-game series at San Francisco against Logan Webb (5-3, 3.19).
Astros: Houston is off Thursday before Zack Greinke (10-3, 3.69) will start in the first of three games against the Los Angeles Angels on Friday night.
Diaz drives in three as Astros cruise over Rockies
Aledmys Diaz registers three RBI with two singles and a double in the Astros' win vs. the Rockies.