Vancouver traveled to Portland with a 2-1 advantage and went ahead 3-1 on Marcus Haber's fourth-minute goal, but the Timbers pulled even at the half on a pair of goals by Brian Farber.
Martin Nash put Vancouver ahead for good with a free kick in the 60th minute, and St. Vincent & Grenadines international Marlon James made it 3-2 on the afternoon and 5-3 overall in the 71st minute.
Former U.S. U-17 Alex Nimo scored from 20 yards to give Timbers' fans hope, but a late flurry could not produce a fifth Timber goal in the series.
Montreal added to its 2-1 advantage from the first leg with Antiguan Peter Byers' goal in the second minute. Josh Hansen drew the Islanders within one goal on aggregate from the penalty spot with four minutes to play, but Cuban Eduardo Sebrango ended Puerto Rico's hopes of its first USL-1 title with a goal in stoppage time.
Vancouver will host the first leg of the final Saturday. The second leg will be played in Montreal at a date yet to be confirmed.