Toronto FC made it back-to-back wins with a 2-1 victory over New York City FC on Saturday.
The Reds made a slow start to life under new head coach Bob Bradley, picking up just a single point across their opening three games. But after a 2-1 win at home to DC United last time out, TFC really got things going with victory against the defending MLS Cup champions at BMO Field.
A difficult opening 20 minutes saw TFC almost give away a couple of penalties, but a VAR intervention saved youngster Kosi Thompson while referee Drew Fischer rightly judged that Carlos Salcedo took the ball in a challenge on Maxi Moralez.
After that, Toronto got a foothold and some nice play between Alejandro Pozuelo and Jonathan Osorio put Jesus Jimenez free in the NYCFC box. The Spaniard made no mistake with his finish, calmly slotting the ball past goalkeeper Sean Johnson for 1-0.
And just 13 minutes later, the hosts doubled their advantage as Brazilian center-back Thiago Martins could only divert a wicked free-kick delivery from Pozuelo into the back of his own net.
NYCFC grew into the game in the second half and after being denied on multiple occasions by Alex Bono, finally found a breakthrough with Heber heading home a perfect Alfredo Morales cross in the second minute of added time.
Unfortunately, that was far too late and Toronto easily held on to pick up three vital points as they continue to ignite their season.
Here is how every player rated on a victorious afternoon for Toronto FC.
Toronto FC player ratings
1. Goalkeeper & defenders
Alex Bono (GK) - 7/10 - Wasn't overly tested in the first half but won a personal duel with Keaton Parks after the break, denying the midfielder on three occasions. Couldn't do anything to stop the Heber goal.
Shane O'Neill (CB) - 7/10 - Kept his defending simple but very effective.
Carlos Salcedo (CB) - 8/10 - Made a couple of vital tackles and was very clean on the ball. Doing a great job of leading this TFC defense.
Lukas MacNaughton (CB) - 5/10 - Good defensive positioning allowed MacNaughton to pick up a lot of loose balls and interceptions in the first half. Lost concentration a little late on to allow NYCFC a couple of chances, including the Heber goal.
Kosi Thompson (RWB) - 7/10 - Saved from giving away a penalty early on by VAR but improved quickly from there, supporting the attack and defending well when required.
Michael Bradley (CM) - 6/10 - Took his time getting into the game and was caught in possession in dangerous areas a couple of times early on. Did well once he got going.
Jonathan Osorio (CM) - 8/10 - Set up Jimenez for the opening goal and caused NYCFC problems in the first half with his forward runs. Faded after the break following his international exertions and came off at the hour.
Luca Petrasso (LWB) - 6/10 - Had a couple of dangerous moments in the NYCFC half and did what he needed to defensively.
Alejandro Pozuelo (RW) - 8/10 - Combined well with Osorio in the build-up to the opening goal and then forced an own goal for the second with a great cross into the box. Always lively and looking to create.
Jesus Jimenez (ST) - 9/10 - Took his goal well and did a good job of occupying the NYCFC center-backs throughout.
Jacob Shaffelburg (RW) - 6/10 - Didn't create much but put in a lot of hard yards and never let NYCFC settle.
Noble Okello (for Osorio, 60 minutes) - 6/10 - Some clean passing and helped TFC see out the game with energetic pressing.
Jayden Nelson (for Shaffelburg, 87 minutes) - 5/10 - Barely touched the ball.
Jordan Perruzza (for Jimenez, 89 minutes) - 6/10 - Came close with a powerful effort at the end.
NYCFC player ratings
5. Goalkeeper & defenders
Sean Johnson (GK) - 5/10 - Helpless for both goals.
Nicolas Acevedo (RB) - 5/10 - Given a tough time by the energy of Shaffelburg and Petrasso and was unable to contribute offensively as a result.
Thiago Martins (CB) - 2/10 - Can perhaps count him as unfortunate for the own goal but it really summed up what was a clumsy defensive performance. Failed to win any of his ground duels.
Alex Callens (CB) - 5/10 - Was more secure than Martins but had too much to do next to the struggling Brazilian.
Chris Gloster (LB) - 6/10 - Had some good moments in the TFC end, making a few dangerous crosses and getting into dangerous areas.
Alfredo Morales (CM) - 6/10 - Overrun at times when TFC countered, but provided a great cross for Heber's goal.
Keaton Parks (CM) - 7/10 - Was NYCFC's most threatening player with a few powerful efforts from distance. Strange decision to sub him out.
Maxi Moralez (CAM) - 6/10 - Carved a few decent openings but was nowhere near his incisive best.
Santiago Rodriguez (RW) - 6/10 - Definitely one of NYCFC's biggest outlets. Made a lot of driving runs and put in some tempting deliveries.
Taty Castellanos (ST) - 5/10 - Always looked a threat but missed a couple of good chances that he'd definitely have scored just a couple of months ago.
Talles Magno (LW) - 6/10 - Took the game to TFC more than most in a blue shirt across the opening 45 minutes with some dangerous, driving runs. Subbed out at half-time.
Gabriel Pereira (for Magno, 45 minutes) - 6/10 - Did a decent job of matching Talles Magno's level, though he couldn't make a breakthrough.
Gedion Zelalem (for Parks, 76 minutes) - 5/10 - Never adjusted to the game.
Thiago Andrade (for Moralez, 76 minutes) - 6/10 - Clean on the ball but didn't have time to influence the game.
Heber (for Gloster, 84 minutes) - 7/10 - Headed home NYCFC's consolation goal, should have been given longer to make a difference.