Kansas City took the lead in the fourth minute when Dwyer met Matt Besler's long throw-in from the right and beat Troy Perkins to the ball to head into the empty net.
The home side managed to haul themselves level as Justin Mapp kept a long ball to the back alive by nodding it into the path of Marco di Vaio, who found the corner with his headed effort.
Sporting went close just before the break when Seth Sinovic met a clearance with a first-time volley just outside the box, but his effort went just wide of the post.
After the break, Dwyer continued to be a threat for the visitors when he collected a pass on the edge of the box and turned his man, although he struck his shot straight into the arms of Perkins.
Perkins kept his side on level terms as he made a magnificent save to deny Toni from close range with a great one-handed stop after Jacob Peterson had found the forward inside the box.
However, Perkins along with Heath Pearce made a crucial error as the defender tried to shepherd the ball back to the keeper, but Mikey Lopez got his foot to it and the deflection fell to Dwyer. The striker took a touch and buried the ball into the net to hand his side the win.