The Italian striker scored twice to lead the Impact to a much-needed 2-1 win over D.C. United on Saturday.
The victory snapped a two-game losing streak for Montreal (11-7-5) as the Impact picked up a crucial three points for just the second time in its last nine matches.
It also allowed the club to keep its place among the tightly packed top five in the Eastern Conference playoff race.
"Our second half wasn't great. They dominated the play and we couldn't find the solution to block them. But we responded well and we have Marco Di Vaio," said midfielder Patrice Bernier, whose header set up the game-winning goal.
"It's great to be able to win games like that because today was a big win in terms of the standings. We have to stay tight so that our games in hand benefit us when we do catch up."
The Impact came out ready to play and score, with several opportunities early on in the match. United withstood Montreal's early possession before creating a few chances of its own.
"What I liked about our team is that we started very well. I saw a team that wanted to win this game," Impact head coach Marco Schallibaum said following the win, which came two weeks after his club fell 3-1 to United in D.C.
Montreal was able to capitalize on an opportunity in the 43rd minute. After a strong effort on the right wing, midfielder Justin Mapp crossed the ball in for Di Vaio, who scored his 12th goal of the season, and his first since July 3.
"I'm very happy because I play to score and when I don't score, I'm not happy because I'm not helping the team," Di Vaio said. "The team needs goals from me and they got it today in an important game after two losses. It was important for our morale."
Already mired in the Eastern Conference and MLS basement, the defeat left D.C. (3-17-4) without a road win in 11 games. The club has also scored just three goals on opposing pitches.
United forwards Dwayne De Rosario and Luis Silva came close to netting the equalizer on a pair of opportunities early in the second half but both were denied by Impact keeper Troy Perkins.
"It was a little bit heartbreaking for us. I felt like we played well, created enough chances, especially on the road, to get out of here with some sort of result, so it is disappointing," said United assistant coach Chad Ashton. "But we are very happy with our team's effort and thought we played a very good game.
"We knew it was going to be difficult. They haven't had the best run over the past seven or eight games and we knew they would be very hungry to come out and get three points."
Di Vaio came within inches of his second tally of the night in the 61st minute, but his shot from the top of the box trickled wide left of the net.
The match became heated in the 75th minute when Mapp and United's James Riley both leaped for the ball along the sidelines and Riley appeared to push Mapp into the TV camera. Unhappy with the situation, Impact head coach Marco Schallibaum and United head coach Ben Olsen got into a heated exchange resulting in ejections for both. Riley was given a yellow card.
"The ball went up on the sideline, I went up with Riley and momentum carried us into the camera and table," Mapp said. "I ended up being okay but things got heated and I think that fired everybody up."
Schallibaum said he was simply sticking up for Mapp.
"I spoke for my player, Justin Mapp, because he fell down into the camera. Because he's my player, I wanted to go see what happened because it's a very dangerous situation," Schallibaum said of his third ejection of the season. "I was out a little bit from my zone."
He added: "I can't say everything that I think (without risking a fine)."
United forward substitute Conor Doyle evened things up in the 81st minute with his second of the season.
Di Vaio added his second of the match two minutes later when Bernier headed the ball to the striker on the left wing.
D.C. midfielder Nick DeLeon nearly secured at least a point for his club in the 89th minute, but he was held off by Perkins.
The match marked the return of defender Dennis Iapichino to Montreal. United signed Iapichino on Thursday after he was waived by the Impact earlier in the week. The 23-year-old wasn't in D.C.'s starting lineup but was sent in as a substitute late in the game.