Match ends, De Graafschap 1, Ajax 4.
De Graafschap 1-4 Ajax: Ajax win to secure double
Ajax capped a memorable season with their first league title since 2014 as a 4-1 final-day win at De Graafschap secured a domestic double.
Erik ten Hag's side - who came so close to a place in the Champions League final - needed just a point to win their 34th title.
First-half goals from Lasse Schone and Nicolas Tagliafico ensured that the title was added to their Dutch Cup win.
Dusan Tadic then scored twice - goals in an 11th consecutive league game.
Youssef el Jebli had briefly equalised for the hosts, whose season is not over yet - they go into the relegation play-offs to try and stay in the Eredivisie.
Ajax were again outstanding for long periods in the final appearance for midfielder Frenkie de Jong, who agreed to sign for Barcelona for £65m in January, while captain Matthijs de Ligt is one of several other brilliant young stars who are also expected to leave this summer.
Ajax only missed out on a place in the Champions League final thanks to a stunning last-minute goal from Tottenham's Lucas Moura and Ten Hag may now have a reluctant, if lucrative, rebuilding job on his hands.
Tadic and De Jong both went close early on at the end of typically fluent moves before Schone opened the scoring with a brilliant free-kick from 22 yards.
The hosts responded when El Jebli got the wrong side of De Ligt and fired in at the near post.
But Hakim Ziyech then danced into the area and put a goal on a plate for left-back Tagliafico to regain the lead, and when De Jong won a second-half penalty with a brilliant driving run, former Southampton man Tadic fired in his 37th goal of an unforgettable campaign.
The best was yet to come - Tadic lashing in from a tight angle with a thumping late shot.
- 21MatusiwaBooked at 66minsSubstituted forOlijveat 73'minutes
- 20El Jebli
- 11van MieghemSubstituted forBurgzorgat 68'minutes
- 9BahouiSubstituted forNijlandat 80'minutes
- 12MazraouiSubstituted forKristensenat 59'minutes
- 4de Ligt
- 20SchöneSubstituted forDolbergat 63'minutes
- 6van de BeekSubstituted forde Witat 78'minutes
- 21de Jong
- 7Neres Campos
- 28Semedo Varela
- 30de Wit
- Danny Makkelie
- Shots on Target
Second Half ends, De Graafschap 1, Ajax 4.
Hakim Ziyech (Ajax) hits the bar with a left footed shot from outside the box from a direct free kick.
Dani de Wit (Ajax) wins a free kick in the attacking half.
Foul by Youssef El Jebli (De Graafschap).
Goal! De Graafschap 1, Ajax 4. Dusan Tadic (Ajax) left footed shot from the left side of the box to the bottom left corner. Assisted by Daley Blind.
Foul by Nicolás Tagliafico (Ajax).
Delano Burgzorg (De Graafschap) wins a free kick in the defensive half.
Offside, Ajax. Frenkie de Jong tries a through ball, but Dani de Wit is caught offside.
Daley Blind (Ajax) wins a free kick in the attacking half.
Foul by Delano Burgzorg (De Graafschap).
Attempt blocked. Klaas-Jan Huntelaar (Ajax) right footed shot from outside the box is blocked. Assisted by Kasper Dolberg.
Attempt blocked. Nicolás Tagliafico (Ajax) left footed shot from the centre of the box is blocked. Assisted by Dani de Wit.
Corner, Ajax. Conceded by Lars Nieuwpoort.
Substitution, De Graafschap. Stef Nijland replaces Nabil Bahoui.
Corner, De Graafschap. Conceded by Nicolás Tagliafico.
Attempt blocked. Youssef El Jebli (De Graafschap) right footed shot from outside the box is blocked.
Substitution, Ajax. Dani de Wit replaces Donny van de Beek.
Foul by Matthijs de Ligt (Ajax).
Youssef El Jebli (De Graafschap) wins a free kick in the attacking half.
Attempt blocked. Hakim Ziyech (Ajax) left footed shot from the left side of the box is blocked.
Attempt saved. Hakim Ziyech (Ajax) left footed shot from outside the box is saved in the bottom left corner.
Attempt missed. Delano Burgzorg (De Graafschap) right footed shot from the right side of the box misses to the right. Assisted by Fabian Serrarens.
Substitution, De Graafschap. Frank Olijve replaces Azor Matusiwa because of an injury.
Delay over. They are ready to continue.
Delay in match because of an injury Azor Matusiwa (De Graafschap).
Attempt missed. Javier Vet (De Graafschap) header from the centre of the box is high and wide to the left. Assisted by Youssef El Jebli with a cross.
Substitution, De Graafschap. Delano Burgzorg replaces Daryl van Mieghem.
Goal! De Graafschap 1, Ajax 3. Dusan Tadic (Ajax) converts the penalty with a left footed shot to the top left corner.
Azor Matusiwa (De Graafschap) is shown the yellow card for a bad foul.
Penalty Ajax. Frenkie de Jong draws a foul in the penalty area.
Penalty conceded by Azor Matusiwa (De Graafschap) after a foul in the penalty area.
Substitution, Ajax. Kasper Dolberg replaces Lasse Schöne.
Matthijs de Ligt (Ajax) wins a free kick in the defensive half.
Foul by Nabil Bahoui (De Graafschap).
Corner, Ajax. Conceded by Leeroy Owusu.
Foul by Rasmus Kristensen (Ajax).
Lars Nieuwpoort (De Graafschap) wins a free kick in the defensive half.
Foul by Lasse Schöne (Ajax).
Daryl van Mieghem (De Graafschap) wins a free kick in the attacking half.