St. Louis City SC dominated possession and had the better of the chances at CITYPARK, but they couldn't break down a stubborn Charlotte FC side that made the most of their opportunities. The hosts peppered the visitors' goal with 22 shots and 11 on target, earning themselves six corners in the process. Charlotte barely mustered a response with just eight shots and three on target, yet somehow emerged with a point from the 1-1 draw. The first half remained goalless despite St. Louis City's territorial advantage, and it wasn't until after the break that the deadlock was finally broken. Both sides found the net once each, leaving both teams frustrated—particularly the home side, who had controlled large swathes of the match. Kristijan Kahlina was the star turn for Charlotte, earning the official man of the match rating with a commanding defensive display that frustrated the City offense repeatedly.
The Matchup
St. Louis City SC and Charlotte FC drew 1-1 at CITYPARK, in a game that could easily have finished either way. Neither team could really take control of the ball for long, with St. Louis City SC holding 52% possession, close enough to an even split to explain why the game never settled into one side's favour. Both sides had spells on top without ever pulling clear, and the shot count on the day backs up just how tight things were. A draw is rarely the result either team sets out to get, but on this occasion it was a fair reflection of ninety minutes where chances were shared roughly evenly. Below is a closer look at exactly how the numbers from the match broke down.
Man of the Match
Match Statistics
Match Events
| Min | Team | Card | Event | Score |
|---|---|---|---|---|
| 7' | Charlotte FC | Andrew Privett | 0-0 | |
| 40' | St. Louis City SC | Timo Baumgartl | 0-0 | |
| 59' | St. Louis City SC | Substitution — S. Jeong on, B. McSorley off | 0-0 | |
| 60' | St. Louis City SC | Goal — M. Hartel (assist: S. Becher) | 1-0 | |
| 66' | St. Louis City SC | Jaziel Orozco | 1-0 | |
| 69' | Charlotte FC | Substitution — H. Toffolo on, D. Schnegg off | 1-0 | |
| 69' | Charlotte FC | Substitution — L. Abada on, K. A. Calderon Vargas off | 1-0 | |
| 69' | Charlotte FC | Substitution — L. de la Torre on, D. Diani off | 1-0 | |
| 71' | Charlotte FC | Wilfried Zaha | 1-0 | |
| 73' | Charlotte FC | Goal — P. Biel (assist: W. Zaha) | 1-1 | |
| 83' | St. Louis City SC | Substitution — C. Durkin on, M. Perez off | 1-1 | |
| 84' | St. Louis City SC | Substitution — D. Polvara on, L. MacNaughton off | 1-1 | |
| 88' | Charlotte FC | Substitution — I. Toklomati on, T. Smalls off | 1-1 | |
| 90+3' | St. Louis City SC | Substitution — S. Becher on, C. Teuchert off | 1-1 | |
| 90+4' | St. Louis City SC | Substitution — Rafael Santos on, T. Totland off | 1-1 |
St. Louis City SC vs Charlotte FC Lineups
Looking Ahead
St. Louis City SC will already be turning their attention to what comes next. Their next test comes at home to FC Dallas, and how they respond after this result will be worth watching. You can follow the build-up and everything you need to know when St. Louis City SC vs FC Dallas going to play at 30 August 2026 in Major League Soccer 2026.
Charlotte FC, meanwhile, have a quick chance to build on this result. They are next in action away at Atlanta United FC, a game that will give an early sense of how they carry this result forward. Full details are here: Atlanta United FC vs Charlotte FC going to play at 29 August 2026 in Major League Soccer 2026.