Montreal (12-11-10, 46 points) won for the first time in five games and will need to win again on Sunday against Orlando City to get in.
Houston (6-16-12, 30 points) lost its fourth straight, blanked for the third time in its final four matches.
Rudy Camacho gave Montreal a 1-0 lead in the 58th minute, getting his foot on a loose ball in the goal area after a Montreal corner with his back to the net.
Kamal Miller made it 2-0 with a header off another corner in the 62nd minute.
Montreal dominated possession in the first half, getting nearly 64 percent of the touches and spending the bulk of the half in the attacking third. But the home side struggled to get shots on goal, with only three of their 13 shot attempts hitting the target.
In the seventh minute, Mathieu Choiniere was all alone at the left side of the box, but his shot was saved by goalkeeper Kyle Morton.
Montreal full-back Zachary Brault-Guillard's chance from the right side was blocked by Houston defender Tim Parker in the 13th minute.
Choiniere stole the ball outside the box for a long-range strike, but the ball went just wide left.
Dynamo full-back Sam Junqua had his side's first opportunity in the 24th minute, but his kick from the left wing sailed over the net.
Five minutes later, Junqua delivered at the other end, blocking a Mihailovic straight-on shot from inside the box.
Houston started to pick it up on the attack in the final 10 minutes of the half. Ariel Lassiter and Adam Lundqvist each had chances from the left side a few minutes apart but were stopped by goalkeeper Sebastian Breza. In the 43rd minute, Memo Rodriguez's strike from the top of the box landed just outside the net.
Griffin Dorsey nearly put the Dynamo ahead in the 51st minute off a corner, but his header rolled left.
Montreal picks up 2-0 win over Houston
CF Montreal is one win away from making the playoffs after picking up a 2-0 win over Houston.
Rudy Camacho's goal puts Montreal ahead
Rudy Camacho scores for CF Montreal in the 58th minute to score the first goal of the game.