Impact was two goals up at the break thanks to
Patrice Bernier's penalty in the 34th minute and
Marco Di Vaio's effort on the stroke of half-time.
Robbie Earnshaw pulled one back from the spot in the 68th minute but Toronto could not find an equaliser.
Philadelphia Union edged to a 1-0 win over New England Revolution to stay three points behind Montreal in the Eastern Conference.
Jack McInerney grabbed the only goal of the game 14 minutes from time.
The rest of the day's games ended in draws.
Rodney Wallace netted in the last minute to earn a 1-1 draw for Portland Timbers at Seattle Sounders.
Eddie Johnson scored for Seattle in the 13th minute.
Columbus Crew was held to a 1-1 draw by San Jose Earthquakes, which equalised through
Justin Morrow (74) six minutes after
Berti Glauber had given the home side the lead.
Alvaro Saborio salvaged a point for Real Salt Lake, scoring 10 minutes from time to cancel out Colorado Rapids' opener, which came through
Deshorn Brown (37), in another game which finished 1-1.
The other two games - New York Red Bulls v DC United and Sporting Kansas City v Chicago Fire - finished goalless.