Ajax clinched their fourth successive Eredivisie title with a 1-1 draw against Heracles Almelo.
Frank de Boer's side began the game six points clear of Feyenoord with two games remaining and a comfortably superior goal difference.
While Feyenoord did their bit with a 5-1 win over Cambuur Leeuwarden, a solitary point was enough to rubber-stamp the 33rd league title in Ajax's history.
They could have achieved it in greater style after Lasse Schone gave them a 12th-minute lead, but Simon Cziommer equalised 10 minutes later and that was how it stayed.
“I am proud,” De Boer told De Telegraaf. “It was not the prettiest game, but eventually we dragged in the title.”
A league double over Feyenoord played a big part in Ajax's success, while they also took four points against third-placed FC Twente and responded to September's 4-0 loss to PSV Eindhoven by winning the return fixture.
“We have beaten almost all our direct competitors, so the title is justified,” De Boer added.
Feyenoord's win, and Tonny Trindade de Vilhena's brace, served only to cement Champions League qualification ahead of fellow big winners Twente.
Ruud Vormer's opener was cancelled out by Martijn Barto just before half-time but Trindade de Vilhena scored twice in the second half, with Graziano Pelle and Jean-Paul Boetius also on target.
At the other end of the table, Roda JC's relegation was almost confirmed as they slipped to a 2-1 defeat at home to FC Groningen.
Basement club Roda were unable to take advantage of either Hans Hateboer's early own goal or Maikel Kieftenbeld's second-half dismissal, which came after Richairo Zivkovic (54) and Filip Kostic (60) had scored the goals that gave Groningen victory.
Roda's fate is not quite confirmed after NEC Nijmegen, three points ahead of them in the second relegation playoff position, suffered a 5-2 hammering against Twente with the accompanying harm to their goal difference.
They led through Geoffrey Castillion's first-minute strike but Kyle Ebecilio equalised and three goals in five minutes swung the game Twente's way.
Wout Brama put them ahead and Dusan Tadic added a quickfire double before Jesus Corona rounded off the win a minute after coming on as a substitute, with keeper Nick Marsman's own goal mere consolation for NEC. Third-placed Twente remain four points behind Feyenoord.
NAC Breda drew 1-1 with RKC Waalwijk to remain three points and eight goals ahead of their opponents in the race to avoid the other relegation playoff spot.
They were on course to confirm their survival after Jordy Buijs' opener but Sander Duits equalised to maintain RKC's slim hopes of avoiding the bottom three.
PSV Eindhoven joined Twente in the automatic Europa League qualifying places with a 2-1 win away to PEC Zwolle, Jurgen Locadia and Bryan Ruiz with the goals either side of Mustafa Saymak's equaliser.
That took PSV ahead of Vitesse Arnhem, who had to battle to draw 2-2 with Go Ahead Eagles.
Go Ahead did just that, through Marnix Kolder and Jarchinio Antonia, but Guram Kashia and Davy Propper drew Vitesse level.
Heerenveen beat FC Utrecht 4-1 with goals from Marten de Roon, Hakim Ziyech, Joost van Aken and Alfred Finnbogason. The latter's goal came in stoppage time, as did Jacob Mulenga's consolation.
ADO Den Haag beat AZ Alkmaar in the day's other game, Mike van Duinen and Danny Holla on target before AZ substitute Markus Henriksen pulled one back.