The home side took the lead when Matt Besler lifted a long throw into the area, and the ball hit the top of the head of Callum Mallace and looped over Troy Perkins and into the net.
Di Vaio could have pulled his side level immediately as he collected a chipped pass from Felipe in the area, but he drilled his effort on the half-volley wide of the post from close range.
After the break, Kansas City doubled their lead when Collin found the net with a low left-footed shot after the Impact had failed to clear their lines from a corner.
Dwyer got a third for the home side minutes later when Jacob Peterson drilled a low cross into the penalty area and the striker was there to poke the ball past Perkins.
The duo came together again to get Sporting's fourth of the game to seal the three points, as Peterson lifted a cross into the six-yard box and Dwyer headed home.