Cyle Larin and Russell Teibert scored for Canada, which can advance to CONCACAF's third round of qualifying with a win, draw or one-goal loss in the second leg.
"I think we played a very good game," said Canadian head coach Benito Floro. "We proposed that we would be serious in this game and to play Dominica with a lot of respect. We developed a strong pressing game, and at the same time we had at least 12 or 13 scoring chances."
Larin opened the scoring in the fifth minute after receiving a through ball from Tosaint Ricketts in the right side of the box. Teibert doubled Canada's lead in the 64th minute on a penalty kick.
"It was very important to get an early goal and settle into the game and put them on the back foot early," said Larin. "It was good for us."
Canada goalkeeper Milan Borjan was sent off in the 80th minute for deliberately handling a goal-bound shot outside the box after Jonathan de Guzman turned the ball over to give Dominica a breakaway. Borjan, who will be suspended for the second leg, was replaced in goal Kenny Stamatopolous.
Canada, ranked 109th in the world, hosts the second leg against the 168th ranked Dominicans in Toronto at BMO Field on June 16.
Should the Canadians advance after the second leg, they will move on to the third round of CONCACAF qualification. That stage will see 10 second-round winners join Jamaica and Haiti — the seventh and eighth-seeded teams — in six home-and-away series to be played Aug. 31 to Sept. 8.
The third-round winners will move on to the group stage — a point the national team has failed to get past since the buildup to the 1998 World Cup.
"We'll prepare the same (for the game in Toronto) because this is the second half of the eliminatory, so we're going to play Dominica in front of our home support and we need to play very well," said Floro.
"We have to score enough goals to be happy and hopefully enough to give two or three players other chances to play, but it has to be a very good game for us."