The hosts opened the scoring early on from the penalty spot. In the 8th minute, Edson Álvarez was called for bringing down Sebastian Giovinco in the box, and the Italian stepped up to take the ensuing penalty kick. He sent Agustín Marchesín the wrong way to give Toronto the 1-0 lead.
América responded in the 21st minute, however. Andrés Ibargüen sliced his way through the Toronto defense before beating Alex Bono to tie the game 1-1 – and give América a potentially valuable away goal.
Then, just before halftime, Toronto retook the lead. Giovinco played in Jozy Altidore, who sent his low diagonal shot into the net to make it 2-1 in the 44th minute.
The hosts added a third goal shortly after the restart, with Ashtone Morgan finishing off some good team play in the 58th minute to make it 3-1 and give Toronto some breathing room.
América threw numbers forward as they looked for another away goal, but their pressure ultimately came to nothing. Substitute Henry Martín had a big chance late on when he went one-on-one with the keeper, but Bono made the save.
With the 3-1 win, Toronto will reach the final with a win or draw in next week’s second leg, as well as a one-goal loss; América will advance with a 2-0 win, but if Toronto scores, they’ll need to win by three. A 3-1 América win would send the series to penalties.
Toronto: Alex Bono, Drew Moor, Eriq Zavaleta, Gregory van der Wiel, Jonathan Osorio, Marco Delgado (Nicolas Hasler 74′), Michael Bradley, Ashtone Morgan, Auro, Sebastian Giovinco, Jozy Altidore (Tosaint Ricketts 85′).
América: Agustín Marchesín, Bruno Valdez, Edson Álvarez, Carlos Vargas (Joe Corona 54′), Paul Aguilar, William da Silva (Renato Ibarra 89′), Guido Rodríguez, Mateus Uribe, Oribe Peralta, Cecilio Domínguez (Henry Martín 80′), Andrés Ibargüen.