Ajax came from behind to earn a 2-2 draw with Heerenveen at the Johan Cruijff Arena, though they'll feel frustrated they didn't convert their dominance into three points. Leading 2-1 at the break, the hosts controlled proceedings with 54 percent possession and 23 shots, but Heerenveen's clinical finishing proved costly. The visitors managed just 14 attempts but troubled Ajax enough to claim a point, with their eight shots on target a potent reminder that quality can trump quantity. Abdellah Ouazane was the standout performer for Ajax, earning the official man of the match rating despite the dropped points. The draw keeps both teams in the mix, though Ajax will be kicking themselves after so thoroughly dominating the contest. Seven corners and four shots on target should have been enough to see off struggling Heerenveen, but the away side's resilience meant they went home with something to show for their efforts. It's an inconsistent result for Ajax that could prove costly come the end of the season.
The Matchup
It finished 2-2 between Ajax and Heerenveen at Johan Cruijff Arena, a scoreline that summed up a game short on clear separation between the two sides. Neither team could really take control of the ball for long, with Ajax holding 54% possession, close enough to an even split to explain why the game never settled into one side's favour. There were spells of pressure from both teams, but not enough to turn a share of the points into all three. Days like this are part of a long season, and how each side responds in their next fixture will say plenty about their form heading forward. Here is a closer look at how the two teams compared statistically.
Man of the Match
Match Statistics
Match Events
| Min | Team | Card | Event | Score |
|---|---|---|---|---|
| 7' | Ajax | Goal — B. Klaverboer | 1-0 | |
| 33' | Ajax | Goal — A. Ouazane (assist: Caio Henrique) | 2-0 | |
| 45' | Heerenveen | Goal — J. Trenskow (assist: S. Kersten) | 2-1 | |
| 51' | Heerenveen | Jacob Trenskow | 2-1 | |
| 57' | Ajax | Youri Regeer | 2-1 | |
| 58' | Heerenveen | Substitution — L. Oyen on, M. Rivera off | 2-1 | |
| 65' | Ajax | Aaron Bouwman | 2-1 | |
| 65' | Ajax | Substitution — O. Gloukh on, J. Brandt off | 2-1 | |
| 65' | Ajax | Substitution — K. Dolberg on, Marcos Leonardo off | 2-1 | |
| 73' | Ajax | Substitution — D. Klaassen on, J. Mokio off | 2-1 | |
| 73' | Heerenveen | Substitution — R. Meerveld on, L. Machine off | 2-1 | |
| 82' | Heerenveen | Goal — M. Rivera | 2-2 | |
| 86' | Ajax | Lucas Rosa | 2-2 | |
| 86' | Ajax | Substitution — S. Berghuis on, O. Edvardsen off | 2-2 | |
| 87' | Ajax | Substitution — A. Ouazane on, T. Arokodare off | 2-2 | |
| 87' | Heerenveen | Substitution — O. Braude on, H. Petrov off | 2-2 |
Ajax vs Heerenveen Lineups
Looking Ahead
Ajax does not have long to wait before getting back out onto the pitch. Their next test comes away at Telstar, and how they respond after this result will be worth watching. You can follow the build-up and everything you need to know when Telstar vs Ajax going to play at 30 August 2026 in Eredivisie 2026-27.
Heerenveen, meanwhile, will already be turning their attention to what comes next. They are next in action away at Willem II, a game that will give an early sense of how they carry this result forward. Full details are here: Willem II vs Heerenveen going to play at 30 August 2026 in Eredivisie 2026-27.