Striker Kris Boyd scored in the 67th minute for the Timbers (3-5-4), who were coming off a 2-1 victory over the Chicago Fire last Sunday that pulled them out of last place in the Western Conference.
The Whitecaps (5-3-4) remained a victory away from matching their win total from all of last season when they finished last in the West.
The match was the second in the fan-created Cascadia Cup rivalry between Major League Soccer's Pacific Northwest trio: the Timbers, Whitecaps and the Seattle Sounders. Vancouver and Seattle opened the three-way competition on May 19 with a 2-all draw at BC Place.
In Major League Soccer play, Vancouver's last match was the draw with the Sounders. The Whitecaps fell 1-0 to Toronto FC on Wednesday night in the decisive match of the Canadian Championship. With the win, the Reds will represent Canada in CONCACAF Champions League play.
The Timbers fell 1-0 in a friendly Wednesday to Span's La Liga side Valencia, but most of Portland's starters were used sparingly or rested, including Scottish striker Boyd.
Portland captain Jack Jewsbury was a starter against Vancouver after missing a match with a sore hip. Defender Futty Danso sat out with a left hamstring strain.
Jewsbury got a head on a corner kick from Kalif Alhassan in the 22nd minute, but it went wide of Vancouver's goal.
The Whitecaps got their chance in the 45th minute, but Brazilian Camilo Sanvezzo's shot when just over the bar.
The shot came just as severe weather settled in over Jeld-Wen Field. The match made it to the half, but the resumption of play was delayed by lightning, thunder and sheets of rain.
Alain Rochat's free kick in the 55th minute also sailed over the bar.
The Timbers went ahead when Boyd punched it in off a deflection from Whitecaps goalkeeper Joe Cannon. Boyd leads the Timbers with four goals this season.
Mattocks scored about a minute after he was subbed in with a shot from about 8 feet out.
The Timbers are 26-33-12 all-time against Vancouver, dating to the North American Soccer League in the mid-1970s.
The original Cascadia Cup was introduced in 2004 when the Timbers, Whitecaps and Sounders were part of the United Soccer Leagues First Division. Fans pooled their money to buy a 2-foot tall trophy, which went to the team that finishes with the best record in head-to-head matches among the trio, based on a points system.
Seattle claimed the Cascadia Cup for the first time at the MLS level by winning at both Portland and Vancouver last season and coming away with draws at home against each side.
Figuring out the Cup winner this season will be a bit more complicated. With the league going to an unbalanced schedule, the Whitecaps, Sounders and Timbers will play each other three times. Seattle has to play twice at Vancouver and twice at Portland with just one home game against each this season. Vancouver will travel twice to Portland, with the first match in that rivalry on May 26.
The balance will be flipped next season with Seattle hosting Portland and Vancouver twice and the Whitecaps hosting the Timbers two times.