The Dynamo (11-9-13) have 46 points, putting them in good position to take one of the league's 10 playoff berth. Houston assured itself of no worse than a tie for 10th after Saturday's games.
The win vaulted the Dynamo into second place in the Eastern Conference, ahead of New York (43 points), Columbus (44) and Sporting Kansas City (45), all of whom play Saturday. The Dynamo can guarantee a fifth trip to the playoffs in six seasons by beating league-leading Los Angeles in their final regular-season match Oct. 23.
The Timbers (11-14-7) have 40 points and are virtually eliminated from the playoffs. Their last two matches are on the road, where they are 1-4-2 in their last seven games. Portland lost at home for the first time in seven matches.
"We never came out and started with the zest and enthusiasm and mobility that I expected," Timbers coach John Spencer said.
Hainault scored in the 36th minute off a free kick from Brad Davis. Cruz powered a left-footed kick into the left corner in the 59th minute.
Already home to one of the most boisterous crowds in the league, Jeld-Wen Field had a playoff atmosphere, with dozens of flags waving, smoke from the pregame fireworks wafting and a light rain falling.
Spencer was an assistant for five years under Houston's Dominic Kinnear before leaving to organize the expansion Timbers. Earlier in the season, Portland sent forward Adam Moffat to Houston for defensemen Lovel Palmer and Mike Chabala, a deal that has worked out well for both sides. The Dynamo defeated Portland 2-1 on Aug. 14 in their first meeting.
"Houston's a good team," Chabala said. "They have a lot of experience in these types of games and it shows."
Houston is unbeaten in its past five matches and had not played since a 1-all draw with Chicago on Oct. 1.
The Timbers' last game was a 1-0 win at Vancouver on Oct. 2.