Columbus could have gone top with a victory, yet Toronto - bottom of the table with just four wins in their previous 28 matches - led 2-0 at half-time with goals from Nick Soolsma and Ryan Johnson.
Substitute Tom Heinemann pulled a goal back but Julian De Guzman restored the two-goal advantage seven minutes from time.
Although Andres Mendoza set up a rousing finish with an 87th-minute goal, Danny Koevermans made the points safe just a few minutes after coming off the bench.
Charlie Davies' hat-trick gave DC United a 3-0 win at Chivas USA, who had David Lopes dismissed after the goals had gone in.
An own goal from goalkeeper Kasey Keller and further breakthrough from Alvaro Saborio set up Real Salt Lake's 2-1 win at Seattle Sounders, for whom Freddy Montero levelled on the stroke of half-time.
The visitors had Tony Beltran dismissed in the 35th minute - but the numbers were levelled up four minutes later when Jhon Hurtado saw red.
Teal Bunbury (2) and CJ Sapong got the goals which gave Sporting Kansas City a 3-0 win over Houston Dynamo, who had Carlos Costly sent off in the 64th minute.
Shalrie Joseph and Rajko Lekic scored in each half as New England Revolution beat FC Dallas 2-0, while Chris Wondolowski and Ramiro Corrales were on target as San Jose Earthquakes downed Chicago Fire by the same scoreline.
Red Bull New York recovered from the 45th-minute dismissal of Jan Gunnar Solli to earn a 1-1 draw against Vancouver Whitecaps. Davide Chiumiento gave the visitors the lead but after the dismissal of Solli on the stroke of half-time the hosts rallied with a goal from substitute Juan Agudelo.
Philadelphia Union's match with Portland Timbers ended in a goalless draw.