PORTLAND, Ore. - Diego Valeri scored on a free kick in the 74th minute to give the Portland Timbers a 2-1 victory over Toronto FC on Sunday.

The winning goal, which gave Portland a three-match winning streak and snapped Toronto's three-game undefeated run, came on Valeri's birthday.

Portland took the early lead with a goal on in the 17th minute on a nice series from Darren Mattocks to Valeri and then to Fanendo Adi in the middle of the box for the goal. It was Adi's seventh goal of the season, tying him with San Jose's San Jose's Chris Wondolowski for the league lead.

Former Timbers player Will Johnson scored for Toronto in the 40th minute, rushing in on a loose ball and beating diving Portland goal keeper Jake Gleeson.

The match capped an eight-game trip for Toronto FC to open the season while BMO Field is renovated. The Reds went (3-3-2) over that span.

Toronto FC was coming off a 2-0 victory at rival Montreal. Sebastian Giovinco scored both goals in the victory. Giovinco, the reigning MLS MVP, has six goals this season, but the Timbers managed to shut him down.

Portland saw the return of two key players — including Valeri, who missed Wednesday's 1-1 draw at New England because of accumulated yellows. Captain Liam Ridgewell also came back from a hamstring injury that has kept the defender out since he played in the opener.

Timbers fans were angered in the first half with Johnson's sliding tackle on Valeri. A trainer came out to attend to Valeri, who was able to shake it off and play on.

Portland had a good chance to pull ahead in the 55th minute when Lucan Melano took off on a fast break and passed to Adi charging at the goal, but the ball went wide right.

Jozy Altidore's point-blank header for Toronto in the 63rd minute was denied by Gleeson.

Gleeson came up with another big save on Will Johnson's attempt in extra time, and the Reds sent goalkeeper Clint Irwin up the field on a corner kick but couldn't even it again before time ran out.