Trailing 1-0 after a fluke goal by striker Blas Perez in the 20th minute, Vancouver tied the game in the 67th minute when Erik Hurtado capitalized on some general disarray by several members of the Dallas backline. But 11 minutes later, Perez scored his second of the game and eighth of the season off a free kick to lead Dallas to a 2-1 victory.
"The first one is a fluke," said Whitecaps goalie David Ousted. "He (Perez) tried to hit a cross that swerves on me and goes in on a dime and button. With that, I could have moved my feet more and maybe gotten to that, but I think I reacted well afterwards, some good saves."
Dallas (13-9-6) snapped a two-game losing streak and remains unbeaten against Vancouver at home at 5-0-0.
The Whitecaps (8-7-13), who fell to 2-4-8 on the road, controlled the play up until the early goal by Perez, which came when he booted a 35-yard bomb off his right foot from near the far corner of the field.
"Very good game, close game, decided by some interesting goals to say the least," Whitecaps head coach Carl Robinson said.
The game could have turned back in the visitors' favour in the 28th minute when Dallas right back Je-Vaughn Watson pushed Vancouver striker Sebastian Fernandez inside the Dallas area. But instead of pointing to the spot for a penalty kick, referee Ted Unkel awarded a free kick just outside the Dallas area, and Mauro Rosales' effort was turned away by Dallas goalkeeper Raul Fernandez at the far post.
"I know that the guys that are sitting in there (think) that we should have received a penalty in the first half because he (Watson) was blatant in the box," Robinson said of the non-call. "Key moments in games can change games."
Tempers flared just before halftime when Vancouver striker Russell Teibert was shown a yellow card for a challenge from behind near midfield on Dallas flank midfielder Andres Escobar. Whitecaps assistant coach Martyn Pert and Dallas assistant Josema Bazan were each issued red cards for dissent.
Robinson kept Whitecaps scoring leader Pedro Morales on the bench to start the game, a decision the head coach said he didn't regret. Morales entered in the 57th minute for Mehdi Ballouchy and had a chance to tie the game on a free kick in stoppage time, but struck the ball directly into a wall of Dallas players.
"Pedro was fatigued," Robinson said. "His quads were a little bit tight and you could see when he came on for the last 25-30 minutes he didn't have as an effect as probably I would have liked. Christian Dean stepped in, was fantastic. He really was."
Vancouver remains fifth in the Western Conference, one point ahead of Portland, who it will face next week on the road, for the fifth and final playoff spot.