MONTREAL -- Young fullback Karl Ouimette's first Major League Soccer goal was the stuff of dreams.
The 21-year-old headed in the game winner in the 84th minute to cap a comeback 2-1 victory over the Philadelphia Union on Saturday afternoon that put the Montreal Impact a big step closer to making the playoffs.
The Impact academy product from Repentigny, Que., said he lay in bed the night before the game visualizing how he should play in various situations and what it would feel like to get a goal.
It came true on Justin Mapp's free kick after a foul by the Union's Raymon Gaddis. Mapp curled a ball into the penalty area where three Impact players were open. Ouimette was the one to nod it home.
"It felt magical," said Ouimette, who was awarded with a post game face full of shaving cream by his teammates. "There are no words. I put it in and everyone was jumping on me."
The win put Montreal (14-12-7) solidly into playoff position heading into their final regular season game next Saturday in Toronto, although final positions among the top five in the Eastern Conference are still to be determined.
The Union (12-11-10), who began the day in a fourth-place tie with Montreal and Chicago, saw their post-season hopes all-but dashed.
"This was a playoff game without the playoffs," said Philadelphia coach John Hackworth. "Both of us had to win. We did a good job in the first half, but we couldn't finish it off."
The victory lifted a great weight off a Montreal side that had gone winless in six games and that was shut out in the last three.
They looked headed for more disappointment when midfielder Fabinho put the visitors ahead in the 29th minute, but veteran Marco Di Vaio scored his 20th goal of the season in the 64th minute to tie the game before Ouimette had the Saputo Stadium crowd on its feet with the game-winner.
"It's not finished yet, but given our last string of games and a lot of disappointment, to come out on top in the last home game of the regular season feels good," said Mapp. "Every team I've been on has had stretches like this, but unfortunately, it came at the end of the season when we're trying to lock up a playoff spot.
"It's a big three points here, but we've got one other huge game, so it's not over yet."
After a flat first half, the Impact played with an intensity they haven't shown in more than a month. They used their legs. They won one-on-one battles. They got to balls first.
Coach Marco Schallibaum took veterans Patrice Bernier and Davy Arnaud out and sent in Andrew Wenger and Andrea Pisanu to add fresh legs and the pressure increased.
"We came out much different in the second half," said Wenger. "There was desperation.
"We dug ourselves out."
Before he was substituted, Arnaud fed Di Vaio in the penalty area and saw the MLS scoring leader spin and beat goalie Zac MacMath. It ended the Impact's 337-minute scoring drought dating to a Maxim Tissot goal in a 2-2 tie in Chicago on Sept. 28. And it made Di Vaio only the 11th in MLS history to score 20 in a season.
"It gave us 30 seconds to breath," Wenger said of the goal. "But a tie wouldn't do it for us today.
"Thankfully, we kept fighting."
Conor Casey nearly got one for the Union as he headed Fabinho's corner off a post in the 24th minute.
Then Philadelphia's two Brazilians combined as Jose Kleberson sent a pass to a charging Fabinho, who caught Hassoun Camara looking as he blasted a high shot in from a bad angle in the 29th.
The only disappointment for Montreal was to see veteran defender Alessandro Nesta hobble off the field in the closing minutes with a right calf injury.
Before the game, the former Italy international was presented with a painting and given a standing ovation to mark his final home game. The 37-year-old former AC Milan great, a four-time UEFA all-star, will retire after this season.
He hopes to be back in time to play at least one game.
"My calf, in the last five minutes I felt something," he said. "If I can play, for sure I'm going to be on the field.
"It was a beautiful day. Thank you everybody for the big experience. I love this city. I don't know. Maybe in the future we'll meet again."
Notes: Arnaud and Matteo Ferrari returned from one-game suspensions. Ouimette played left back in place of Job Brovsky (ankle). . . One of the Union's top midfielders, Michael Farfan, sat out due to yellow card accumulation.