PORTLAND, Ore. -- With two straight wins on the road to open the season, new Montreal coach Marco Schallibaum was not going to quibble over missed opportunities.
Schallibaum said the Impact had "five or six" really good chances in what turned out to be a 2-1 victory over the Portland Timbers on Saturday night.
"It's OK," he said. "Three points like this? We can't complain."
Hassoun Camara scored on a bicycle kick and Felipe added another goal for Montreal, which won its opener 1-0 in Seattle last weekend.
Ryan Johnson scored in the 80th minute for the Timbers, who played to a 3-3 draw in their opener last Sunday against the New York Red Bulls, rebounding in the second half from a 3-1 deficit.
The Timbers weren't able to come back against the Impact and goalkeeper Troy Perkins, who was acquired by Montreal in a trade with Portland last August.
"I can say without a shadow of a doubt, everything we thought they'd do -- they didn't," new Timbers coach Caleb Porter said.
The Timbers dominated possession in the first half, but the Impact got the quality shots on goal, including an early strike by Felipe that went wide left, and a header from Marco Di Vaio that Portland goal keeper Donovan Ricketts knocked away.
Montreal found the back of the net in the 31st minute on Camara's bicycle kick to go up 1-0. Camara, a defender who was with Montreal before it joined Major League Soccer last year, had a goal and two assists in 20 games for the Impact last season.
Diego Valeri's free kick in the 38th minute for Portland was blocked by the wall of Montreal players.
Felipe scored in the 60th minute on a cross from Andres Romero, who had just come into the game and charged down the right side for the feed on his first touch.
Veteran Johnson tapped in his goal for the Timbers off a long cross from Ben Zemanski, acquired by Portland in a trade with Chivas in February. Valeri, a newcomer to the Timbers from Argentina who scored in Portland's opener, tumbled attempting a bicycle kick in stoppage time but it sailed over the goal.
"It's a little bit early to get frustrated," Johnson said, "We just have to remember we're doing the right things. We're putting shots on goal."
Former Montreal coach Jesse Marsch left by mutual decision after last year's inaugural season, and the Impact brought in Schallibaum, a veteran who coached nearly 10 years with five clubs in the Swiss league.
"The group today was good together," he said. "That's a very good sign for the coaches."
Porter, meanwhile, came to the Timbers after seven seasons coaching the University of Akron, leading the Zips to the NCAA championship in 2010.
"We can't get too low here," Porter said. " But we also have to wake up and work on some things."
Portland's Darlington Nagbe, who played for Porter at Akron, got his first yellow card in 63 MLS matches with a tackle on Andrea Pisanu in the 30th minutes. Felipe was yellow-carded in the 73rd minute.
Montreal plays its home opener next Saturday against Toronto FC. The Timbers travel to play the rival Sounders in a Cascadia Cup match next Saturday.
"Maybe a darby is just what we need to play a little better physically and mentally," Timbers midfielder Will Johnson said.