Houston (10-12-8) won for just the second time in its last seven games. The Dynamo are three points out for the Western Conference's final playoff spot. Sporting KC (12-9-8) lost for the fifth time in seven games.
Bruin scored his 11th goal in the 67th minute. After a give-and-go with Brad Davis, DaMarcus Beasley dribbled to the baseline and sent a ball across goal. Tim Melia dove to get a hand on it, but it found Bruin's feet at the far post.
Melia started after missing two games because of an injury.
Oscar Garcia was sent off in the 70th minute after receiving his second yellow card on a rough challenge with Dominic Dwyer.