Second-half substitute Antoine Hoppenot scored in the 85th minute to give the Philadelphia Union a 1-0 victory over a Vancouver Whitecaps side that played with 10 men most of Saturday night.
Philadelphia (9-6-7) remained unbeaten in three games, while the Whitecaps (9-7-5) lost their second straight game.
Hoppenot scored off a Philadelphia counterattack moments after Union goalkeeper Zac MacMath had robbed Whitecaps striker Camilo at the other end.
''I thought the team played really well and did well being patient throughout the game and waiting to get that final goal,'' said MacMath, who earned his seventh shutout of the season.
In one of his busiest games of the season, MacMath was credited with five saves.
''The first half wasn't too busy,'' he said. ''But the second half, especially with them pressing, after they gave up the goal, it was a busy game for me and a busy game for the team in general.''
The Whitecaps were a man down from the 8th minute, when midfielder Jun Marques Davidson received a red card for head-butting Keon Daniel in the back. The incident resulted after Keon kicked the ball while Davidson was on top of it after a whistle.
Daniel received a yellow card for the infraction and had turned to walk away following a confrontation with Davidson when the Whitecaps player struck him.
''It's just what happened,'' Davidson said. ''I reacted wrong and, for all of it, I just want to apologize to all the players.''
He also apologized to fans, adding the miscue was out of character for him.
Davidson, Whitecaps players and coach Martin Rennie protested the ejection to no avail. Following the incident, Daniel was booed every time he touched the ball before subbing out in the second half.
''The obvious pivotal point in the game (was) early on in the game when Jun Marques (got) sent off,'' Whitecaps coach Martin Rennie said. ''He reacted in a way that he shouldn't have. He made a mistake and, ultimately, we paid the price for that, because I thought we played well after that.''
Despite being short-handed, the Whitecaps had several scoring chances. In the 15th minute, midfielder Russell Teibert lobbed Kenny Miller's pass over Philadelphia goalkeeper Zac MacMath - and the net.
In the 27th minute, Vancouver's Young-Pyo Lee shot over the net after taking a pass from Russell Teibert. Seven minutes later, Whitecaps striker Kenny Miller sent a header wide of the net.
Vancouver also had scoring chances in the second half but MacMath turned them away.
The Whitecaps were fortunate not to lose goalie Brad Knighton after he and Philadelphia captain Jack McInerney knocked heads in the 24th minute. Knighton lay face-down on the ground for a few moments, kicking the grass in pain and was tended by trainers, but stayed in the game.
McInerney received a yellow card for his involvement.