Boniek Garcia scored in the 33rd minute for the Dynamo, which will play at the Los Angeles Galaxy or Seattle Sounders in the final on Dec. 1. The Galaxy, who beat Houston 1-0 in last year's final, held a 3-0 lead over the Sounders going into Sunday night's second leg at Seattle in their home-and-home, total-goals series.
Branko Boskovic scored in the 83rd minute for D.C., which has not won the MLS Cup since 2004.
Houston, which won consecutive MLS Cup titles in 2006 and 2007, qualified for the 2013-14 CONCACAF Champions League. But the Dynamo may miss Ricardo Clark for the MLS final -- the midfielder reinjured a groin and left in the 66th minute.
After putting 10 men behind the ball for most of the first half, Houston went ahead after Brad Davis picked up a long ball, evaded Marcelo Saragosa and Dejan Jakovic in a run to the endline and with his left foot cut the ball back to Garcia, who from the top of the 6-yard box put the ball into the roof of the net.
Down three goals in the aggregate, United coach Ben Olsen inserted Lewis Neal for Saragosa at the start of the second half, sent in Hamdi Salihi for Lionard Pajoy in the 57th and five minutes later put in Dwayne De Rosario for Emiliano Dudar.
De Rosario, the 2011 MLS MVP, had missed 10 games since injuring a knee while playing for Canada in a World Cup qualifier on Sept. 11.
United, in the playoffs for the first time since 2007, failed to score more than one goal in any of its last five games. D.C. was missing suspended right back Andy Najar and injured attacker Chris Pontius.