Ajax secured their 31st Dutch league title by beating VVV-Venlo 2-0 on Wednesday in their penultimate game of the season.
A brace from Siem de Jong gave the four-time European champions their 13th successive league victory and took them six points clear of second-placed Feyenoord. It is Ajax's second consecutive Dutch title - the first time they have achieved such a feat since winning three Eredivisie crowns in a row between 1994 and 1996.
It also marks a remarkable turnaround for Frank de Boer's side, who were eight points behind joint-leaders PSV Eindhoven and AZ Alkmaar in mid-February.
Feyenoord knew Ajax needed only a point to become champions for the 31st time and goals by Otman Bakkal, Jerson Cabral, Sekou Cisse and Ruben Schaken saw them into a 4-0 lead before Willy Overtoom scored a consolation.
However, victory moved Feyenoord one spot closer to a UEFA Champions League spot, although they must win their final game if they are to keep PSV Eindhoven out of the top two and progress into the competition.
PSV Eindhoven kept the heat on second-placed Feyenoord with a crushing 5-0 victory over ADO Den Haag. The home side were already leading 2-0 through goals from Jeremain Lens and Ola Toivonen when the teams were forced to leave the Philips Stadion pitch soon after half-time due to heavy rain.
The players returned around 15 minutes later, and PSV soon set about increasing their lead with Toivonen making it 3-0 before Zakaria Labyad added a fourth. Dries Mertens completed the scoring late on before ADO saw Kevin Visser sent off.
NAC confirm top-flight status
At the other end of the table, Dusan Tadic's late strike salvaged a 1-1 draw for FC Groningen, but the point was enough to confirm Eredivisie survival for visitors NAC Breda. John Karelse's side headed into the game with a mathematical chance of suffering the drop, but an early effort from Edwin Luijckx set them on their way to making sure of safety.
Excelsior will go into the final game of the season two points adrift at the bottom of the table after they could only 2-2 draw with nearest rivals De Graafschap in a match delayed late on by a thunderstorm. Soufian El Hassnaoui opened the scoring for the hosts, but Excelsior turned things around and took the lead through goals from Luigi Bruins and Roland Alberg.
It stayed that way until 12 minutes from the end when Michael de Leeuw headed the hosts level, and Excelsior were then reduced to ten men when Mick van Buren saw red.
Heerenveen win seven-goal thriller
Heerenveen climbed into the automatic UEFA Europa League qualification places as they recovered from 2-0 down to win a seven-goal thriller at FC Twente. Luuk de Jong's early double put Twente in control but Bas Dost, Oussama Assaidi (two) and Luciano Narsingh's efforts for Heerenveen meant Douglas' late header was not enough for the home side.
AZ Alkmaar lost ground in the battle for European football, though, as they were held to a 1-1 draw at NEC Nijmegen. The mid-table hosts took the lead after 13 minutes when Genero Zeefuik finished from close range, and AZ needed a Ruud Boymans header just before the hour mark to rescue a point.
Vitesse Arnhem twice came from behind to draw 2-2 at FC Utrecht. Edouard Duplan put the hosts in front in the 28th minute only for Giorgi Chanturia to level two minutes before the interval. Frank Demouge restored Utrecht's lead early in the second half, but Nicky Hofs struck eight minutes from time to earn Vitesse a point.
RKC Waalwijk hammered Roda JC 5-2 to move above their opponents in mid-table. Evander Sno and Aaron Meijers scored two goals each with Ricky ten Voord also on the scoresheet in an impressive display from the home side. Mads Junker and Sanharib Malki replied for Roda, but they slipped down to ninth as a result of the loss - one point below their hosts.