Ryan Hollingshead also scored a goal as the hosts won their ninth consecutive match at Banc of California Stadium this season, going 13-1-2 at home in the process.
LAFC (20-8-4, 64 points) moved into a tie with the Philadelphia Union in the battle for the Supporters' Shield, which goes to the team with the most points during the regular season.
Corey Baird scored for Houston (9-17-6, 33 points), which dropped to 3-28-10 in its past 41 road matches.
The Dynamo are 1-1-1 since interim coach Kenny Bundy replaced the fired Paulo Nagamura.
Steve Cherundolo's side had a 19-10 edge in shots and put seven on target to the Dynamo's one.
LAFC earned its first penalty kick when Houston's Griffin Dorsey fouled Denis Bouanga in the box. Vela stepped up to the spot in the eighth minute and sent a left-footed shot into the left corner of the net.
The Dynamo tied the game in the 24th minute as Adalberto "Coco" Carrasquilla set up the goal with a long pass upfield. Baird controlled the ball with his foot and then tapped a right-footer past Crepeau for his second goal of the season.
A handball in the box by Houston's Fafa Picault gave Vela another opportunity from the spot. He lined up in the fourth minute of first-half stoppage time and duplicated his first penalty for his 11th goal of the season.
Hollingshead scored his career-high-tying sixth goal of the season in the 52nd minute. He slammed a right-footed shot into the top center of the net to make it 3-1.