An expensive imported talent scored Toronto's first two, but a local boy snagged the winner against Columbus.
Justin Meram opened the scoring in the 18th minute. The Crew midfielder finished off a counterattacking move with a turn-and-shot assisted by Ethan Finlay.
Toronto equalized almost immediately. Tyson Wahl was called for a foul on Jermain Defoe in the box, and Defoe was solid from the spot for his fifth goal of the year.
Columbus went back on top in the 65th minute. Augustin Viana out-jumped Doneil Henry to put his head to a corner kick and scored from close range.
Defoe netted his second of the game in the 81st minute. Gilberto's pressure forced a turnover in a dangerous area and he fed Defoe, who scored with a classy finish from range.
Henry made up for his earlier lapse by scoring the winner in stoppage time, heading in a 93rd-minute corner kick to make it 3-2.