Kansas City entered the game on the back of a disappointing 3-0 home loss to D.C. United, and the poor run of form on home soil continued as a pair of second-half set pieces turned the match in favor of the Dynamo.
The match was halted midway through the first half due to a severe storm, and Houston responded best upon the restart as Will Bruin opened the scoring in the 35th minute.
Aurelien Collin made a hash of cross from the right flank and Bruin capitalized by punching home the failed clearance with a quick finish.
Sporting answered nine minutes into the second period when Benny Feilhaber slipped a superb square pass into the path of Dom Dwyer, who unleashed a shot that took a deflection on its way past Tally Hall.
But the visitors stamped their authority on the game by converting two set pieces in the span of five minutes.
The go-ahead goal came in the 62nd minute when Brad Davis delivered a cross to the top of the six-yard box that allowed the on-rushing and unmarked David Horst to turn in a header from close range.
Sporting's defense was well-organized on a second free kick five minutes later, but Ricardo Clark still managed to send a glancing header just inside the far post to put Houston two goals clear.
It proved to be all the cushion the Dynamo would need as they snapped a seven- game losing skid away from home to climb to 28 points on the season.
Sporting has dropped three of its last four outings to remain in second place in the Eastern Conference with 42 points.