Kekuta Manneh, with his second of the night, and Pedro Morales scored two minutes part in the second half and the Vancouver Whitecaps hung on for a wild 4-3 win over Toronto FC in MLS play Saturday.

It was an all-action evening with Vancouver using its speed to shred Toronto's revamped defence, which had conceded just seven goals in its previous nine games, on a chilly night before 24,748.

It was Vancouver's first ever league win at BMO Field but Toronto made the visitors work for it, fighting back and coming close as the clock wound down with the Whitecaps playing the last 15 minutes down a man. Mo Babouli had perhaps the best chance to tie it, firing the ball over the crossbar in injury time.

Manneh and Christian Bolanos scored to give Vancouver (6-5-2) a 2-0 lead 18 minutes into the game.

Sebastian Giovinco then scored twice to pull Toronto (4-4-2) even, moving into sole possession of the franchise record for career MLS goals with Nos. 29 and 30. His 37th-minute goal came after strike partner Jozy Altidore missed a penalty and left immediately afterwards with a hamstring issue, an injury that has dogged him in the past.

Four minutes after Giovinco's tying goal in the 66th minute, Manneh restored the Vancouver lead, undressing former Whitecaps fullback Steven Beitashour before beating goalkeeper Clint Irwin. Captain Morales added an insurance marker two minutes later.

Vancouver fullback Fraser Aird was sent off in the 75th minute for a second yellow. Midfielder Jonathan Osorio was hurt on the play and had to be helped off.

Drew Moor's header off a Giovinco corner in the 80th minute cut the deficit to 4-3, making for a nervy ending.

Giovinco has had a hand in all 13 Toronto goals this season, scoring eight and assisting on the other five.

Extending their winning streak to three, the Whitecaps have now won four of their last six. They snapped a three-game road losing run in the process.

Toronto had won five of its last six home matches dating back to the end of last season.

It was the third game in a week for Vancouver, which was coming off home wins over Portland and Chicago. But it was Toronto that looked out of sorts early on.

The home side went behind in the 12th minute when Damien Perquis' pass to Osorio was off-target. Manneh intercepted and made like Usain Bolt, leaving Toronto chasers in his dust before beating Clint Irwin with a left-footed shot from just inside the penalty box.

Six minutes later, Erik Hurtado held off a defender and fed Manneh down the right channel. Irwin made the stop this time but the rebound went right to Bolanos, who hammered it home. Manneh made the play, beating Michael Bradley to head a David Ousted goalkick on to Hurtado.

Bolanos, a Costa Rican international, has four goals and an assist in his last five games.

Toronto came close in the 27th when Osorio's through ball found Giovinco behind the defence but Ousted got a fingertip on the shot. Bradley hammered a shot over the crossbar off the ensuing corner.

Ousted saved Altidore's penalty in the 35th minute after the U.S. international was taken down by Tim Parker. Altidore seemed to be favouring his right leg after the penalty.

With Toronto still at 10 men waiting for a sub to replace Altidore, Perquis found Giovinco between the centre backs with a laser-like 50-yard ball. The Italian moved the ball from one foot to another with a delightful first touch, turning to separate from a defender before beating Ousted with a left-footed shot in the 37th minute.

The goal, his seventh of the season, moved Giovinco atop Toronto's all-time league scoring list at 29 goals in 43 games. He had been tied with Dwayne De Rosario, who notched 28 in 76 games.

Giovinco almost scored again minutes later in the first half, but Ousted got a hand to his swerving free kick. The Italian was just wide with another free kick in the 64th minute.

Giovinco made no mistake in the 66th, set free by Bradley's through ball.

Vancouver, which was without suspended centre back Kendall Waston, made four changes from midweek with Pa-Modou Ka, Hurtado, Manneh and Teibert coming into the starting 11. It marked Hurtado's first start since March 2015.

Osorio started for injured midfielder Marky Delgado (hamstring).

It was the clubs' first league meeting since the opening day of last season, when Altidore scored twice in a 3-1 Toronto win.

Vancouver was 0-2-1 in league play at BMO Field prior to Saturday.

The Vancouver Southsiders, a Whitecaps supporters' group, went overboard before the match with a tweet that said "First order of business if we ever get our hands on a fighter jet" and an accompanying -- doctored -- video with someone celebrating as the CN Tower gets hit by a flying object.