The home win gave the champions a total of 25 points, one more than Vitesse Arnhem, who play on Sunday, and AZ Alkmaar who did well to hold Roda JC Kerkrade to a 2-2 draw after playing with nine men for 71 minutes.
Ajax went ahead in the second minute through Danny Hoesen before Viktor Fischer and Davy Klaassen added two more goals in the second half.
The Amsterdam club, third in Champions League Group H, entertain leaders Barca on Tuesday.
Alkmaar went close to an unlikely victory against Roda and were only denied by a 90th-minute equaliser from Vasil Shkurtaj.
Nick Viergever was sent off for the home side in the 12th minute for a professional foul and team mate Nemanja Gudelj followed him seven minutes later for a nasty tackle.
The nine men then surprisingly took the lead in the 24th minute through Mattias Johansson.
Roda equalised soon after but Aron Johannsson put Alkmaar back in front before halftime.
Bart Siemans was also sent off for the visitors in stoppage time.
Alkmaar are third on 24 points, the same total as Vitesse but with an inferior goal difference.
Yanic Wildschut gave Heerenveen the lead at PSV Eindhoven with 10 minutes to go but Marco van Basten's team rescued a 1-1 draw thanks to Florian Jozefzoon.
NEC Nijmegen remained bottom after losing 2-1 at SC Cambuur.
(Reporting by Mark Gleeson; editing by Tony Jimenez)
Share
