Dutch leader FC Twente and second-place PSV Eindhoven were held to draws on Sunday as Ajax moved within three points of top spot after winning 2-0 against FC Groningen.
Twente's four-game winning streak was ended after the defending champions required a late penalty from Theo Janssen to secure a 1-1 draw against Roda JC.
PSV drew 2-2 with SC Heerenveen after defender Wilfred Bouma was dismissed in the 81st minute.
With four rounds remaining, Twente is two points in front of PSV and three ahead of Ajax, which is seeking a record 30th league title.
Also Sunday, Feyenoord trounced FC Utrecht 4-0.
At Enschede, Roda goalkeeper Mateusz Prus was sent off in the 85th for fouling Ruiz in the area, and Janssen converted the resulting penalty. Twente's Roberto Rosales was also dismissed in injury time for a professional foul.
Twente, which lost 5-1 to Villarreal in the Europa League quarterfinals on Thursday, wasted a number of scoring opportunities before Roda hit the lead in the 77th minute when Boldizsar Bodor slid the ball home.
Bryan Ruiz missed a penalty for Twente in the 53rd.
Miralem Suljemani and Jan Vertonghen scored to help Ajax defeat Groningen. Right back Gregory van der Wiel made a surging run before picking out Suljemani, who cut into the Groningen area and placed the ball beyond goalkeeper Brian Loo.
Belgium defender Vertonghen scored in the 72nd to give Ajax the crual points.
Playing in front of a loyal crowd, PSV took the lead from Jeremain Lens' strike in the 58th. Oussama Assaidi and Bas Dost hit back with a goal each for Groningen before Lens set up Ola Toivonen for his injury-time equalizer.
In other 30th-round matches, it was: VVV-Venlo 1, NEC Nijmegen 4; Excelsior Rotterdam 0, De Graafschap 0; ADO The Hague 1, Vitesse Vitesse 0; Willem II 2, Heracles Almelo 6 and AZ Alkmaar 1, NAC Breda 1.
At Utrecht, Diego Biseswar scored one goal and created the other for Leroy Fer in Feyenoord's win. Kevin Leerdam and Georginio Wijnaldum also netted as struggling Feyenoord rose to 11th.