Utrecht reached the European play-off final after drama against Heerenveen
FC Utrecht qualified for the final of the Dutch Eredivisie play-offs for European competition after a 3:2 victory against sc Heerenveen at Stadion Galgenwaard in Utrecht. The match was played on Thursday, May 21, 2026, in the play-off semi-final that decides the last Dutch place in the qualifiers for the UEFA Conference League. According to official Eredivisie data and available match reports, Utrecht, as the sixth-placed team of the regular part of the championship, had home advantage against Heerenveen, which finished the season in eighth place. In the closing stages, the home side had to withstand pressure from the visitors, but preserved the narrow lead until the end and thus remained in contention for the 2026/2027 European season. Heerenveen ended its play-off campaign with defeat, although in Utrecht it remained competitive until the final minutes.
One match decided the semi-finalist
The Eredivisie play-off format for qualification for Europe has given special weight to every match in recent seasons because both the semi-final and the final are played as a single match. This means there is no return leg and no room to make amends after a poor evening, so the encounter between Utrecht and Heerenveen had the character of an elimination match from the very beginning. According to the announced play-off schedule, Ajax, FC Groningen, FC Utrecht and sc Heerenveen took part in the semi-finals, and home advantage went to the clubs that had finished higher in the league part of the season. On that basis, Utrecht hosted Heerenveen at Galgenwaard, a stadium which, according to data from the Flashscore service, has a capacity of 23,750 seats, while attendance for this match was listed as 19,334 spectators. In such an environment, the home team received what had made its league position important: a decisive match in front of its own supporters.
Utrecht reached the play-offs after a season in which it finished sixth after 34 rounds with 53 points, according to official data published on the Eredivisie website. Heerenveen was eighth in the same table with 51 points, which shows how small the difference between the two teams was. The home side recorded 15 wins, eight draws and 11 defeats in the league part, with a goal difference of 55:42, while Heerenveen had 14 wins, nine draws and 11 defeats, with a goal difference of 57:53. Before the match, therefore, there was no room to conclude that Utrecht entered the game as a clear favourite, although its position in the standings brought it an important advantage. In the end, the semi-final confirmed precisely that balance: Utrecht went through, but had to play the match right to the very end.
A spectacle with five goals and an uncertain finish
The final score of 3:2 shows how open the semi-final was and how little was missing for the match to go into an additional 30 minutes. According to the report by the FCUpdate portal, referee Van der Laan blew the final whistle after a finish in which Heerenveen was searching for an equaliser, while Utrecht was trying to settle the match through counterattacks. The same source states that in the 87th minute Heerenveen put strong pressure on the home side, while in the 90+3rd minute Utrecht had several chances to score the goal that would have closed the match, but the ball did not end up in the net. The encounter therefore remained open almost until the final whistle, which further emphasised the elimination character of the semi-final. Utrecht withstood the pressure and secured a place in the final against Ajax with a 3:2 victory.
According to the available match record on the VoetbalPrimeur portal, the list of match events and participants highlighted the names of Jesper Karlsson, Sébastien Haller, Artem Stepanov, Souffian El Karouani, Mike van der Hoorn, Dylan Vente, Jacob Trenskow, Marcus Linday and other players who marked the evening. The record also confirms that the match started at 21:00 and was played at Stadion Galgenwaard, with Van der Laan as referee. Although the available open sources do not provide a complete and unambiguous overview of all the minutes of the goals, it is clear that the match had a rhythm that constantly shifted pressure onto both sides. For Utrecht, the key was the ability to maintain the lead despite conceding goals and the late pressure from the visitors. For Heerenveen, the impression remains that it was close enough, but not precise enough in the moments that could have changed the outcome.
Utrecht continues the season, Heerenveen remains without a European reward
The victory brought Utrecht a continuation of the season and the final match in which it can secure European qualification. According to FCUpdate’s report, after the 3:2 victory the home side reached the play-off final against Ajax, which is scheduled for Sunday, May 24, 2026. Ajax defeated FC Groningen 2:0 in the other semi-final, which is confirmed by official information on Ajax’s website and by reports from Dutch media. This gave the final pairing the expected weight: Ajax, as the fifth-placed team of the league part, and Utrecht, as the sixth-placed club, will decide the final place that leads from the Netherlands toward the Conference League. For Utrecht, it is also an opportunity to turn a season in which it finished behind Ajax into European success through a direct duel.
For Heerenveen, defeat in Utrecht meant the end of the competitive year. The team from Friesland was very close to Utrecht in points during the regular part, and in the semi-final it showed that it had not been among the clubs fighting for a European position by chance. Still, a play-off system in which one match decides everything does not necessarily reward continuity over 90 minutes if key chances are missed in the closing stages. According to FCUpdate’s description of the final minutes, Heerenveen had a big chance through Jacob Trenskow, who, after Lasse Nordås headed the ball back, shot wide of the goal. Such details in play-off matches often create the difference between the final and the end of the season. Heerenveen remained one step away from a match for a European place, while Utrecht used its home advantage and advanced further.
Why this play-off is especially important
The Eredivisie play-off for European competition in 2026 has additional importance because it decides the team that will travel to the qualifiers for the UEFA Conference League. According to the schedule published by VoetbalNieuws, the winner of the final enters the second qualifying round of the Conference League and begins the European season on July 23. For clubs in the middle and upper part of the Dutch table, this is an important sporting and financial goal, because European matches bring additional visibility, revenue and an opportunity to strengthen the club profile. For Utrecht, qualification for Europe would be confirmation of a season that ended in the upper part of the Eredivisie, while for Ajax it would represent a way to soften the disappointment after fifth place. That is why the final will not be merely a formal conclusion to the play-offs, but a match with real consequences for planning the next season.
A special context is also provided by the fact that the play-offs are played after the end of the regular part of the championship, when the teams have already gone through a full 34 rounds. According to the official Eredivisie standings, PSV finished the season in first place, Feyenoord was second, NEC third, FC Twente fourth, Ajax fifth, Utrecht sixth, AZ seventh, Heerenveen eighth, and Groningen ninth. In such a structure, the play-off serves as an additional filter for a European position, but also as a mechanism that gives clubs outside the direct European places one more opportunity. Utrecht has made use of that opportunity for now, while Heerenveen has been left without it despite a relatively small gap behind the clubs ahead of it. Ultimately, five goals at Galgenwaard showed why such a format can be attractive to spectators, but also extremely cruel for the defeated team.
Ron Jans earned one more match
An additional emotional dimension to Utrecht’s progress was given by the status of coach Ron Jans, whom Dutch sources before and after the match highlighted as a person whose coaching career could be extended by at least one more encounter. In its preview of the match, FCUpdate raised the question of whether Utrecht could extend Jans’s career by one more match, and after the end of the encounter it reported that Utrecht would fight Ajax in the final for a place in the qualifying rounds of the Conference League. The Eredivisie had also announced the previous day that Jans was ending his career as the winner of the Rinus Michels award for coach of the month, which further strengthens the symbolism of the closing stage of his season. In that sense, the victory over Heerenveen is not only a sporting result, but also the continuation of a personal final story in Dutch football. The final against Ajax will therefore also have a strong narrative beyond the fight itself for European qualification.
For Utrecht’s players, however, the most important thing will be that the emotional framework does not suppress the tactical demands of the final. Against Groningen, according to the official list of results on the club’s website, Ajax won 2:0 and thus showed that it entered the play-offs with a clear intention to save its European season. Utrecht, meanwhile, brings into the final a fresh victory over Heerenveen and the experience of a match in which it had to withstand pressure in the closing stages. Such encounters often build confidence because the team sees that it can survive crisis minutes. At the same time, the missed chances for 4:2 in stoppage time showed that efficiency will have to be greater against Ajax if a new drama is to be avoided.
Ajax awaits in the final on May 24
The play-off final is scheduled for Sunday, May 24, 2026, and according to Ajax’s schedule the start of the match against FC Utrecht is planned for 18:00. Ajax played its semi-final in Volendam against FC Groningen, and not at the Johan Cruijff Arena, which Dutch and international media linked to the unavailability of the home stadium due to previously agreed events. Still, the sporting outcome remained clear: Ajax went through with 2:0, Utrecht with 3:2, so the clubs that finished the regular part of the season next to each other in the standings will decide the final European place. Since Ajax was fifth and Utrecht sixth, the final duel will be a continuation of their direct battle from the closing stage of the championship. According to Ajax’s official list of results, Utrecht celebrated a 2:1 win away at Ajax on May 10, 2026, which gives the final additional competitive charge.
Utrecht enters the final with proof that it can win tight, high-pressure matches, but also with a warning that an opponent with enough quality can exploit every weakness in defence. Heerenveen scored two goals at Galgenwaard and searched for a third until the end, so analysis of that match will probably be an important part of preparation for Ajax. On the other hand, the 3:2 victory showed that Utrecht has the attacking capacity to respond to changes in the score and play a match at a high tempo. If the final is similar to the semi-final, the details will decide: finishing, set pieces, concentration in the closing stages and the ability to withstand the pressure of a single match. For now, the only certain thing is that Utrecht extended its season to the last possible day of the play-offs with victory against Heerenveen.
Sources:
- Eredivisie CV – official standings, club data and context of the closing stage of the 2025/2026 season (link)
- VoetbalPrimeur – match record for FC Utrecht - sc Heerenveen, result, venue, kick-off time and referee (link)
- FCUpdate – live report and context of Utrecht’s 3:2 victory and qualification for the final against Ajax (link)
- VoetbalNieuws – explanation of the play-off format, semi-final and final schedule, and information about the second qualifying round of the Conference League (link)
- Ajax – official schedule and results, including Ajax’s victory against FC Groningen and the announcement of the final against FC Utrecht (link)
- Flashscore – data on the stadium, capacity and attendance of the FC Utrecht - sc Heerenveen match (link)