09/27/2014 03:22 EDT | Updated 11/27/2014 05:59 EST

Late Bradley goal seals win as Toronto FC rallies from 2-0 down to edge Portland

TORONTO - It was a game with a sickening injury in the opening seconds and a stirring comeback in the final minute.

An emotional roller-coaster of an MLS contest Saturday started with Portland Timbers captain Will Johnson being taken to hospital with a broken leg and ended when Michael Bradley, one of his best friends, completed a Toronto FC comeback with an 89th-minute goal for a 3-2 win.

"For them a teammate, for me a very close friend," Bradley, speaking in the Toronto locker-room afterwards, said of the Canadian international Johnson. "Look for anybody else in here, you hate to see somebody down like that.

"There's still a game to be played. Unfortunately they're still passing out points at the end of the game."

Rookie defender Nick Hagglund scored twice in the second half to set the stage for Bradley, whose curling free kick from more than 35 yards out went through a mass of players — freezing goalie Donovan Ricketts — and into the goal without being touched.

Rallying from a 2-0 deficit after just 16 minutes, Toronto scored three second-half goals in 27 minutes in a character-defining comeback.

"These are the kind of days that can change seasons," said Bradley, who initiated Toronto's second goal via another free kick.

"We know there's still a lot we can improve on, we still need to be better," he added. "We're still right in the thick of it.

"But if you use these kind of afternoons in the right way, they can give you a real boost."

The game, played on a sunny 22 C afternoon before an announced sellout crowd of 22,591 at BMO Field, was a matchup of two teams on the playoff bubble, with both carefully watching results of clubs around them.

The Timbers started the day in fifth place in the West while Toronto was seventh in the East, three points out of the playoff picture.

The win moved TFC into fifth place and a playoff spot, at least temporarily pending the outcome of the Columbus-Montreal game later in the day. Eastern-leading D.C. United did Toronto a favour by defeating Philadelphia 1-0.

Toronto (11-11-7) stretched its unbeaten streak to three (2-0-1) while recording a franchise record 11th win of the season, surpassing the club mark for victories (10) and points (39), both set during a 10-11-9 season in 2009.

Coach Greg Vanney called it "a remarkable comeback."

"When I look in the guys' eyes after, they're believing," he said. "They're very much believing in what they have to accomplish this season."

The loss snapped Portland's unbeaten streak at four but the outcome will be overshadowed by the loss of its influential and popular captain.

It turned into a game of two halves, with Portland holding the edge in the first — scoring twice in the first 16 minutes — and Toronto taking over in the second.

Fanendo Adi scored for Portland, which also got an own goal from Toronto captain Steven Caldwell.

Toronto started its comeback in the 62nd minute with Hagglund rising high to head in a cross from Daniel Lovitz for his first MLS goal. Minutes later, Ricketts stopped Dominic Oduro from in close to preserve the lead.

Toronto made it 2-2 eight minutes later off another Bradley free kick that went through a mass of humanity before an open Hagglund, whose giveaway led to Portland's first goal, headed the ball down and it went in at the far post.

The game started on a disastrous note for Portland, with Johnson injuring his right leg in a shin-on-shin collision with Toronto fullback Mark Bloom in a 50-50 challenge that saw both players sliding to get to the ball first. Johnson immediately grabbed his right leg just below the knee and motioned to be substituted.

He was taken off on a stretcher with a fractured fibula and tibia in his right leg after a lengthy delay with Bradley looking on closely. The injury led to eight minutes extra time at the end of the first half.

Johnson remained in Toronto to have surgery.

Bloom was able to continue and wasn't penalized on the play. But he was in pain after the game, his leg throbbing from the collision.

Referee Ismail Elfath pocketed his whistle for much of the contest, infuriating both sides at different times but helping make for a fast-paced, exciting game.

The offensively gifted, defensively challenged Timbers came into the game with 52 goals, averaging 1.79 a game to stand third best in the league, and had scored three or more in three of their last four MLS games. And they carved open Toronto's backline repeatedly.

Portland went ahead in the 13th minute when Hagglund's pass out of defence hit midfielder Diego Chara, who fed Adi. The Nigerian striker headed straight into the penalty box and his low right-footed shot beat Joe Bendik.

Three minutes later, it was 2-0 after Toronto failed to clear a corner. Diego Valeri, who pulled the Portland strings for most of the day, raked the ball across the penalty box and it bounced in off Caldwell.

Caldwell thought he had repaid the debt three minutes later when his header off a Bradley free kick beat Ricketts. But the play was called offside.

Toronto should have pulled to within a goal in the 20th minute when Oduro's cross beat everyone and found Gilberto at the far post with the net wide open. But the Brazilian's stubbed shot somehow went wide.

Portland almost scored an own goal of its own in the 36th minute when defender Pa Modou Kah's attempted clearance of an Oduro cross rattled off the goalpost.

Rodney Wallace shot wide in the 53rd minute, clutching his head in disbelief after Portland sliced through the Toronto backline yet again.

The game marked the second time in club history that Toronto FC has overcome a two-goal deficit to win in MLS league play

It also was the 15th consecutive sellout at BMO Field, helping set a league record as the 113th soldout match across all teams this season.

Follow @NeilMDavidson on Twitter