Zardes got his team-high 14th goal after reeling in a pass from Harrison Afful in the middle of the box. The play was upheld after a video review for being offside, but the goal stood.
"I took a touch and put it on frame," Zardes said.
Zack Steffen made five saves for the Crew for his eighth shutout of the season, while the undermanned Dynamo lost their fourth straight and have one win in the past nine matches.
Houston played for the third time in eight days, including a victory decided on penalty kicks over Los Angeles FC on Wednesday in the semifinals of the U.S. Open Cup.
The Dynamo were without suspended players Alejandro Fuenmayor, Darwin Ceren and Alberth Elis. All received red cards during a 1-0 loss to Sporting Kansas City on Aug. 4. Coach Wilmer Cabrera was also ejected from the match and was not on the sideline vs. the Crew.
Yet the Dynamo throttled the Crew, with the lone good chance in the opening 45 minutes for the home team coming on a 25-yard skipping shot by Pedro Santos that hit the right post.
Midfielder Justin Meram returned to the Crew in the 60th minute in his familiar No. 9 jersey after being reacquired in a trade with Orlando City this month. He was traded there on Jan. 29.
Meram immediately got involved and set up a shot by Federico Higuain on the left side of the box in the 62nd minute that Joe Willis stopped, his second save in 10 minutes on the Crew playmaker.
Houston hosts Real Salt Lake on Aug. 18. The Crew play at Atlanta United the next day.
Columbus 1-0 Houston: Zardes strikes in stoppage time
Houston thought they earned a quality point on the road but Gyasi Zardes had other ideas, scoring in the 91st minute to secure all three points for Columbus.