The Whitecaps were presented with a clear-cut chance to take the lead when Mehdi Ballouchy played a through ball for Darren Mattocks, but the striker scuffed his effort with only Raul Fernandez to beat.
Mattocks paid for this miss as Dallas took the lead in style, with Perez looping a volley from an unlikely angle over David Ousted and into the net.
Vancouver nearly brought themselves level when Mauro Rosales drilled a free kick at goal left, but Fernandez was alert to the danger and was able to beat the ball clear.
Tesho Akindele should have doubled the home side's lead when he latched onto Fabian Castillo's cutback after a brilliant run by the winger, but he could not make decent contact with the ball to turn it goalwards.
In the second half, Ousted kept his side in the game with a diving save to deny Castillo as the midfielder turned his man down the left and unleashed a vicious shot which was bound for the bottom corner.
Hurtado did find the back of the net to bring his side level minutes later as he latched on a Rosales pass to fire a shot on the half-volley past Fernandez.
However, Dallas scored the winning goal in the 77th minute as a free kick into the box by Michel caused havoc in the penalty area, and Perez was on hand to blast the ball into the net past a stranded Ousted.