The match was delayed by over an hour due to poor weather after 17 minutes were played. Immediately after the restart Jermaine Taylor headed just over for the visitors from a corner.
In the second half, Kansas City responded and got their equaliser following good work from Benny Feilhaber as he beat a defender and slipped a pass to Dominic Dwyer, who lifted his shot over Tally Hall into the net.
The Dynamo nearly hit back through Brad Davis as he raided down the left and cut in on his right foot. The midfielder then powered a shot at goal, which went just wide of the post.
The visitors scored their third goal of the evening in a similar fashion as Davis whipped another free kick into the box, and this time Ricardo Clark headed the ball into the bottom corner.
Sporting threatened late on through Dwyer as he collected Soony Saad's pass, but he drilled his effort across the face of goal and wide from a tight angle as the Dynamo held out for the victory.