The deciding goal came off Brad Davis' corner kick. Michael Lahoud hit the ball out of the goal mouth, but it pinballed off of Chivas USA's Heath Pearce and into his own goal.
Houston (4-5-6) ended a seven-game winless streak with its first victory since April 29.
''I'm happy we won,'' Houston coach Dominic Kinnear said. ''It's been awhile. Give the guys credit for coming out of halftime determined. ... It was a kind of fluky goal. A little luck touched us, which we haven't had in awhile, but overall, I feel like we deserved the three points.''
Houston also ended Chivas USA's unbeaten streak at three games.
''I don't think we played great during the first 20 minutes,'' Chivas USA coach Robin Fraser said. ''Actually, I thought we played better towards the end of the half because we started to put some passes together. ... I thought later in the (first) half at times we were able to play quite well and able to play through them.''
Marcos Mondaini opened the scoring for Chivas USA (4-5-5) in the seventh minute with an unassisted goal. Houston's Hunter Freeman tried to pass back to goalkeeper Tally Hall, but kicked it weak, and Mondaini picked it off. Mondaini dribbled it in from the left, faked out Hall and tapped an easy shot into the open net.
Geoff Cameron tied it for Houston in the 29th minute with a header off Davis' free kick.
''It feels good to win a game, especially after a month of tough losses and tough ties,'' Cameron said. ''We knew we deserved to win. ... We came back and fought hard. We had been working before the game on free kicks and making that first or second run. That was a good ball by Brad. I just flipped it, and the ball did the rest.''
Cameron scored 3 minutes after the Dynamo missed a chance to tie it in the 26th minute when Cam Weaver's header hit off the far post.
Houston appeared to take a 1-0 lead in the third minute, but Bobby Boswell's header off Davis' corner kick was waved off after a foul was called on Freeman for pushing goalkeeper Dan Kennedy.
Hall finished with three saves, and Kennedy had two saves.