Maximiliano Urruti also scored a goal for the Dynamo, who are unbeaten in four home matches (3-0-1) this season.
Deiber Caicedo scored the lone goal for Vancouver. The Whitecaps have dropped four of their past five games.
Vancouver had a chance to tie it in the fifth and final minute of second-half stoppage play but a left-footed bicycle kick by Lucas Cavallini was wide right.
The Dynamo had a 14-11 edge in shots over Vancouver, which fell to 0-3-1 on the road. Houston put three on target to the Whitecaps' two.
The Dynamo got the scoring started in the eighth minute, as Fabrice Picault was on the left flank and sent a cross in toward the net. Whitecaps goalkeeper Maxime Crepeau deflected the ball and it went right toward Rodriguez, who drilled a left-footed blast into the net.
Houston struck again in the 42nd minute as Rodriguez took a corner kick from the left side and sent a ball toward the net. The ball cleared the pack and Urruti took a right-footed volley shot and sent it past Crepeau to make it 2-0.
Vancouver finally got on the board in the 80th minute after the Dynamo turned the ball over in their own end.
Cavallini passed the ball to Caicedo and Houston goalkeeper Marko Maric came out to cut off the angle. Caicedo maneuvered around Maric as three Houston defenders filled up the goal but Caicedo drilled the short-range shot into the back of the net.
Vancouver took seven first-half shots but didn't put a single on target. Houston placed three of eight shots on net.
Rodriguez had two chances for a second goal in the opening eight minutes of the second half.
First, he sent a right-footed shot over the crossbar in the 48th minute. Five minutes later, Rodriguez took a free kick and sent a hard right-footed blast sailing over the net.
The Dynamo had another solid chance in the 66th minute but Ariel Lassiter's left-footed missile hit the crossbar.
Vancouver had its first good opportunity in the 68th minute but Caio Alexandre had his left-footed shot in the box stopped by Maric.