Toronto FC coach Greg Vanney felt his team was disconnected. Captain Michael Bradley called it a frustrating afternoon. Jonathan Osorio described the performance as unacceptable.

The home side looked flat, out of sorts and without purpose in a 2-1 loss to Portland on Saturday at a chilly, windy BMO Field.

"I think these kind of games don't happen often," Osorio said. "They come once in a while where everybody is kind of off their game."

The Timbers took full advantage, scoring two highlight-reel goals that hushed the crowd of 24,832. Jeremy Ebobisse scored the winner in the 70th minute on a brilliant diving header.

Bill Tuiloma put Portland on the board in the 22nd with a dazzling volley off a corner kick, two minutes after Osorio scored for Toronto (4-2-1).

"The bigger picture on the day was it was just too easy for them to do anything that they wanted to do on the field," Vanney said.

It was the first time that the Timbers (2-5-1) have won at BMO Field. Portland lost its last three meetings at the lakefront stadium and entered play with an 0-4-1 all-time record here overall.

After a quiet opening 15 minutes, Toronto's league-leading offence started to pressure the visiting side.

The hosts struck moments later as Alejandro Pozuelo floated a corner kick to a surging Eriq Zavaleta, who headed the ball into a mess of bodies in front of the net.

Defender Zarek Valentin tried to clear it, but Osorio stuck his right leg out for a tap-in goal.

It was one of the few bright spots in a dull, plodding game that had only a few exciting moments. Both teams managed just three shots on target and Toronto had a slight edge in overall possession.

The Timbers evened the score as Diego Valeri put his corner kick into the heart of the penalty area and Tuiloma struck the ball in mid-air, leaving Toronto goalkeeper Quentin Westberg frozen on his line.

With striker Jozy Altidore out with a hamstring injury, Jordan Hamilton started up front as the home side went with a 4-4-1-1 formation.

Toronto tried to build the play up the wings but high winds often made for wayward crosses. The home side's passes were frequently off target while the Timbers used a composed style and buried their chances.

"We just didn't take care of the ball," Osorio said. "Guys were off their game. I think we were all doing our own thing and we weren't on the same page."

Pozuelo, who had four goals over four games since joining Toronto from Belgium's KRC Genk, had a quiet opening half as the Portland defence stifled him at every turn.

The Timbers stuck with a 4-4-2 lineup that worked in their first victory of the season last week at Columbus.

Play got a little chippy midway through the second half as Toronto's Chris Mavinga and Portland's Jorge Moreira were both shown yellow cards.

With his offence sputtering, Vanney made a change in the 68th minute as Ayo Akinola came in for Hamilton.

But it was Portland that struck two minutes later. Ebobisse found a lane between two Toronto defenders and fully extended himself for a diving header to give the Timbers the lead.

"They were more cohesive as a group, both on the defending side and then on the attacking side when they won it, than we were," Vanney said. "Because of that I thought they were able to control the game."

Pozuelo flashed some nifty dribbling skills in the 81st minute before sending the ball across the goalmouth. Akinola got a piece of it with his outstretched leg but the ball sailed just wide.

"We weren't quite sharp enough, weren't quite dangerous enough," Bradley said. "It was a frustrating afternoon."

Diego Chara could have iced the win for Portland in the 90th minute. He was sent in all alone but pushed the ball just wide of the post.

The Timbers are playing 12 road games in a row due to renovations at Providence Park. Portland's next home game is June 1 against Los Angeles FC.

Toronto kicks off a busy stretch of five games in 15 days with a May 5 matchup at Orlando City. Portland visits Real Salt Lake the same day.