Romell Quioto scored a header in the eighth minute of stoppage time as CF Montreal beat the Philadelphia Union 3-2.
Mathieu Choiniere's cross into the box found the head of Quioto, who outmuscled Olivier Mbaizo and thumped a header beyond Joe Bendik.
Choiniere was at the heart of the action, as his shot was deflected into the hand of Jakob Glesnes in the second minute. Montreal were awarded a penalty, which Quioto made no mistake with, as he blasted it into the top left corner.
Mikael Uhre got the Union back on level terms 25 seconds after half-time as he dragged a shot from the edge of the penalty area through the legs of Joel Waterman and into the bottom corner. The Dane scored his second on the hour-mark as he got behind the Montreal defense and latched onto Daniel Gazdag's through ball. He made his way into the penalty area before slotting it beyond the oncoming Jonathan Sirois.
Julian Carranza was sent off for a second yellow card in the 69th minute, and Philadelphia kept their hosts at bay until the final seconds of the original 90. Choiniere's header hit the crossbar before bouncing out to Chinonso Offor to head the rebound into an empty net.
However, that is where the controversy began, as Nima Saghafi was called to check the goal by VAR. He initially ruled it out for offside but was then called back to check it again, with Kai Wagner seemingly playing everyone onside. Despite that, it was not shown on the VAR images initially, so after a second review, he re-awarded the equaliser.
Jim Curtin made four changes to the team that beat Alianza in the CONCACAF Champions League in midweek. Nate Harriel, Damion Lowe, Jack McGlynn and Joaquin Torres dropped to the bench, while Olivier Mbaizo, Jack Elliott, Leon Flach and Mikael Uhre were named in the starting XI.
Despite scoring a late brace in midweek, Andres Perea was named among the substitutes.
In the second minute, Montreal were awarded a penalty. The ball was cut back to Mathieu Choiniere just inside the Union penalty area, and he struck a first-time effort goalward. Mbaizo blocked the shot, but it went in the direction of Jakob Glesnes and hit his arm before going over the crossbar. The referee pointed to the penalty spot without hesitation, while the defender was shown a yellow card for the handball.
Romell Quioto stepped up and blasted his penalty into the top left corner, while Joe Bendik dived the other way to give the hosts an early lead.
Mason Toye almost made it two in the tenth minute with a speculative effort. Choiniere lifted the ball in the direction of the forward, who volleyed it on the turn. It looked like a stunning strike but went wide of the target as Bendik got across to make sure he had it covered at his near post.
The Union were awarded a free-kick after Julian Carranza was hit by an accidental hand by Victor Wanyama. The ball was over 30 yards from goal, and Glesnes was positioned to take it with a long run-up. He struck the ball with plenty of power as it was directed towards the top left corner. It went just over the crossbar with Jonathan Sirois at full stretch.
In the 26th minute, Quioto thought he had his second. A ball was played over the top of the Philadelphia defense, which Quioto got on the end of. He took the ball beyond the oncoming Bendik with an open goal at his mercy. Fortunately for the visitors, Glesnes came across to make a crucial clearance to keep the score at 1-0 to Montreal.
Choiniere continued to force Philadelphia issues in the 40th minute. He cut inside on his right foot before curling a shot towards the near post. It had some power on it, but Bendik did well to get down and save the attempt.
Down the other end, Uhre had a good opportunity. Flach did well to take the ball down the left after winning possession before cutting it back into the penalty area in the direction of Carranza. The Argentine left the ball for Uhre, who struck it first time with a left-footed effort. However, his attempt towards the far corner went over the crossbar.
Ale Bedoya forced Sirois into a save after some good play by the Union. The ball was played down the right for Carranza, who got on the end of it before cutting it back for Bedoya to curl an effort first time. However, it was at a comfortable height for the Montreal goalkeeper, who made the simple save.
Carranza came close shortly before half-time. Jose Martinez dinked the ball towards the penalty area, and Joel Waterman got his head on the ball, but it went behind him. Carranza did well to get his body in front of the defender before shooting at the near post. Sirois was equal to it as he made the save for a corner.
From the resulting corner, Uhre had a great chance. Wagner's corner was flicked towards the back with Uhre in acres of space. He prodded the ball goalward, but Sirois did well to quickly react and got across to save with his feet before gathering it.
HALF-TIME: CF Montreal 1-0 Philadelphia Union
Uhre brought Philadelphia level just 25 seconds into the second half. Daniel Gazdag played the ball to the striker, who found himself on the edge of the box. He took a touch before dragging a shot through the legs of Waterman and into the bottom corner beyond Sirois.
Uhre scored his second as he gave Philadelphia the lead on the hour. Gazdag provided the assist again, as he played the ball over the top of the Montreal defense for Uhre to run onto. He found himself one-on-one with Sirois before slotting it beyond the goalkeeper and into the far bottom corner.
In the 69th minute, Carranza was sent off for a second bookable offence. After being yellow carded in the 58th minute, he fouled Waterman inside the Montreal half after he caught the defender late when attempting to block his clearance. The referee showed no hesitation in brandishing the second yellow card, as the Union had to play out the last 20 minutes with ten men.
Chinonso Offor equalised for Montreal in the final seconds of regulation. Choiniere's header hit the underside of the crossbar and bounced on the line before going out. However, Offor came charging in to thump the rebound into the back of the net, with Bendik grounded after the initial attempt.
Following the goal, there was complete confusion as the referee disallowed the goal for offside after a VAR review. After that, he was then recalled to the screen to watch again, as Kai Wagner was playing Offor onside, but he did not appear on the angle that the referee watched. The official then awarded the goal once again after over four minutes.
In the eighth minute of stoppage time, Quioto scored a late winner. He outmuscled Mbaizo inside the penalty area following Choiniere's cross and thumped a header past Bendik.
FULL-TIME: Montreal 3-2 Philadelphia Union
CF Montreal: Sirois, Waterman, Miller (Thorkelsson 80'), Camacho, Zouhir (Ibrahim 79'), Lappalainen (Braut-Guillard 80'), Wanyama, Choiniere, Saliba (Rea 53'), Quioto, Toye (Offor 80')
Unused Substitutes: Ketterer, Iliadis, Hamdi, Vilsaint
Philadelphia Union: Bendik, Mbaizo, Glesnes, Elliott, Wagner, Martinez, Bedoya (Lowe 87'), Flach, Gazdag (Perea 74'), Carranza, Uhre (Donovan 75')
Unused Substitutes: Trent, McGlynn, Torres, Bueno, Harriel, Sullivan
Article photo credit to the Philadelphia Union Twitter account.