The two Canadian teams, Vancouver and Montreal, won their home games in the first leg of the USL First Division semifinal series.
The defending champion Whitecaps edged top seed Portland 2-1 at Swangard Stadium on goals by Ivorian Charles Gbeke and young Canadian Marcus Haber.
The Timbers lost only once in 15 games in the regular season, but their lone goal Thursday night came after they were awarded a controversial penalty kick converted by Ryan Pore shortly before halftime.
Goals by American Tony Donatelli and Panamanian Roberto Brown in the first 20 minutes propelled the Impact to a 2-1 win over Puerto Rico in front of 9,835 spectators at Saputo Stadium.
Midfielder Jonathan Steele scored from 35 yards shortly after the half hour mark, but that was all the Islanders could must.
The Impact were without head coach Marc Dos Santos, who was banned from the sideline, serving a one-match suspension following his ejection last weekend at Charleston.
Both second legs will be played Sunday. The Portland-Vancouver game will air live on Fox Soccer Channel at 7 p.m. ET.