Charlotte FC marched into Yankee Stadium on Saturday looking to set a new Major League Soccer record for consecutive victories, but New York City FC had other ideas.
NYCFC defeated Charlotte 2-0, officially securing a spot in the MLS playoffs for the second straight season and ninth time in club history. Alonso Martínez scored his 16th and 17th goals of the season, both from the penalty spot, and Matt Freese saved Wilfried Zaha's penalty to earn his eighth clean sheet of 2025.

New York City, on a three-game winning streak, now sit in 4th Place in the Eastern Conference on 53 points with four games left in the regular season. Charlotte remain in 3rd Place, but they will need to content themselves with merely equalling the MLS record of nine consecutive wins after this loss.
New York City: 2.4 xG, 15 shots, 5 shots on target, 43.1% possession, 428 passes, 79.7% pass accuracy, 17 fouls, 4 corners, 2 saves
Charlotte FC: 1.2 xG, 6 shots, 2 shots on target, 56.9% possession, 589 passes, 85.6% pass accuracy, 10 fouls, 3 corners, 3 saves
Goals:
• New York City, Alonso Martínez (Pen), 11'
• New York City, Alonso Martínez (Pen), 58'
Alonso Martínez: Penalty perfection
Going up against the most in-form team in MLS, it was crucial that NYCFC scored the first goal.
New York City had their first glimpse at goal in the 9th minute, when Nicolás Fernández played a through ball to Andrés Perea. He got his pass off before being taken down by Charlotte goalkeeper Kristijan Kahlina, which was enough for the referee Timothy Ford to award NYCFC their sixth penalty of the season.

Martínez, who missed two penalty kicks earlier this year, stepped up to the spot. He faced Kahlina, who was in fine form after saving Lionel Messi's penalty — notably, it was Messi's first penalty miss since 2022 — his last time out.
But the Costa Rican sent Kahlina the wrong way and placed his penalty down the middle for his 16th goal of the season, giving New York City a 1-0 lead early in the game.
Alonso Martínez scores his 16th goal of the season | Courtesy New York City FC
As the first half progressed, Charlotte settled into the game and took control of possession. That continued into the second half, but then NYCFC created a golden chance to take a two-goal lead in the 58th minute.
Off a New York City corner, Kevin O'Toole took a shot from the top of the box that looked to be on target. But it struck the hand of Idan Toklomati, giving the home side their second penalty kick of the afternoon.
It was Martínez versus Kahlina yet again, and the result was no different: The NYCFC striker scored to give the home team full control with 30 minutes left to play in The Bronx.
Alonso Martínez scores his second penalty of the day | Courtesy New York City FC
After missing those two penalties earlier in the season, Martínez has now scored his last three attempts from the spot. The 26-year-old striker has 17 goals in MLS this season, topping the career-best 16 goals he scored last year.
New York City FC | MLS Goals by Season
Player | Year | Goals | Mins | G/90 | |
---|---|---|---|---|---|
1 | David Villa | 2016 | 23 | 2869 | 0.72 |
2 | David Villa | 2017 | 22 | 2556 | 0.77 |
3 | Taty Castellanos | 2021 | 19 | 2760 | 0.62 |
4 | David Villa | 2015 | 18 | 2514 | 0.64 |
5 | Alonso Martínez | 2025 | 17 | 2335 | 0.66 |
6 | Alonso Martínez | 2024 | 16 | 1498 | 0.96 |
7 | Héber | 2019 | 15 | 1575 | 0.86 |
8 | David Villa | 2018 | 14 | 1754 | 0.72 |
9 | Taty Castellanos | 2022 | 13 | 1436 | 0.81 |
10 | Frank Lampard | 2016 | 12 | 1280 | 0.84 |
Alexandru Mitriță | 2019 | 12 | 2172 | 0.50 | |
Santiago Rodríguez | 2024 | 12 | 2799 | 0.39 | |
13 | Ismael Tajouri-Shradi | 2018 | 11 | 1547 | 0.64 |
Taty Castellanos | 2019 | 11 | 2052 | 0.48 | |
Hannes Wolf | 2025 | 11 | 2354 | 0.42 | |
16 | Jack Harrison | 2017 | 10 | 2757 | 0.33 |

Penalties are Matt Freese's thing
Freese, who has proved that penalties are his thing multiple times before, didn't save Dániel Gazdag's penalty in last Wednesday's win over the Columbus Crew. But he redeemed himself on Saturday.
After New York City was awarded two penalties, Charlotte had a chance from the spot in the 67th minute after Tayvon Gray took down Zaha in the box.
Zaha struck his penalty to the right without much force. Freese guessed correctly and stopped with ease. It was Freese's second penalty save of the year — the first was against James Rodríguez in Leagues Cup play — and his first in MLS since February 25, 2024, which was also against Charlotte.
Matt Freese says no | Courtesy New York City FC
Freese only had to make one other save during the game, earning his eighth clean sheet of the season and keeping Charlotte scoreless for the first time in 20 MLS games.

Playoffs secured, form found at the perfect time
Stop if you've heard this one before: NYCFC are hitting their stride at the perfect time.
That statement was true in 2021 when New York City won the MLS Cup, and it's true again this year — with four games left in the regular season, NYCFC has won six of its last seven MLS games, skyrocketing to 4th in the Eastern Conference after being stuck in 8th Place for what felt like decades.
New York City, which recorded 16 wins in a season for the first time since 2022, will face Inter Miami on Wednesday in a must-watch game at Citi Field. NYCFC will then close out the season on the road against the New York Red Bulls and Philadelphia Union, respectively, before facing the Seattle Sounders at home on Decision Day.
The opportunity for New York City to earn home-field advantage in the best-of-three Round One series of the playoffs is there for the taking, but it won't be easy.
• Charlotte FC, Kristijan Kahlina, yellow card, foul 10′
• Charlotte FC, Brandt Bronico, yellow card, foul 16'
• Charlotte FC, Nathan Byrne, yellow card, foul 20'
• New York City, Nicolás Fernández, yellow card, foul 45+3'
• Charlotte FC, Ashley Westwood, yellow card, poor sportsmanship 58'
• New York City, Kevin O'Toole, yellow card, foul 60'
• New York City, Andrés Perea, yellow card, foul 64'
• New York City, Julián Fernández, yellow card, poor sportsmanship 90+4'
• Charlotte FC, Andrew Privett, yellow card, foul 90+6'
Officials
• Referee: Timothy Ford
• Assistant referees: Nick Uranga, Kevin Lock
• Fourth official: Rubiel Vazquez
• VAR: Younes Marrakchi
• Assistant VAR: Claudiu Badea