The veteran Italian striker played the biggest part as his side came out on top in a 5-3 match against Philadelphia.
Di Vaio got his scoring started early. In just the second minute, the veteran ran unmarked into the box and hammered home Andrew Wenger's low cross.
The Union hit back straight away. Jack McInerney got on the board in the fifth minute. A poor clearance fell to Michael Farfan and he played a simple pass to McInerney to finish for his ninth of the year.
But Di Vaio wasn't nearly done. He gave his team the lead again and put daylight between the two teams with strikes in the 28th minute (finishing a Justin Mapp pass over the top) and 32nd minute (collecting a cross from Andres Romero for an easy goal) to complete his hat trick and tie McInerney for the league lead.
Philadelphia went down swinging. Antoine Hoppenot's wayward cross found the far corner of the net to make it 3-2, and even after Andrew Wenger scored a header to again give the home team a cushion, Sebastien Le Toux scored to again bring the Union within one.
As the Union pushed forward, desperate for a goal, the Impact counterattack punished them. Blake Smith finished past Zac MacMath to make it 5-3.
Di Vaio and McInerney are now tied for the MLS lead in goals with nine. The five goals conceded represents Philadelphia's worst-ever defensive showing.