Dominic Oduro gave the visitors an early lead, but Jonathan Osorio and Andrew Wiedemann scored late to turn the tables.
Columbus got off to a great start and took the lead thanks to a great strike combined with a goalkeeper error. Oduro received a long ball near the corner of the box and unleashed a powerful half-volley which skipped on the turf and beat Joe Bendik at his near post. The TFC goalkeeper will be disappointed to get beaten at his near post from long distance.
The match remained 1-0 until TFC found an equalizer with just minutes to play. Bobby Convey's entry pass was nicely laid off by Jeremy Brockie, and Osorio stole in with a late run into the box and finished low to level the match.
As the skies opened up, TFC had a golden opportunity to win the match, but Steven Caldwell's close-range header hit the post. It seemed TFC's chance to win the game had gone, but there was to be more drama late.
With injury time winding down, Convey put in a great cross to the back post, and second-half sub Wiedemann slid in past his defender to nudge the ball into the far corner and give the home side a thrilling late win.