Georgino Wijnaldum set the hosts on their way in the 38th minute and they wrapped up the win with two late goals. Tim Matavz doubled the lead 10 minutes from time and Luciano Narsingh added a third two minutes later.
The win moved PSV two points ahead of Twente and Vitesse Arnhem, who missed the chance to go top as they went down 3-1 at struggling VVV Venlo.
The visitors went in front through Marco van Ginkel after 10 minutes, but substitute Yuki Otsu levelled in the 40th minute, just five minutes after coming on. Brian Linssen put the hosts in front 10 minutes into the second half and Robert Cullen sealed the upset 10 minutes from time.
Fifth-placed Feyenoord were left five points off top spot following a 2-2 draw at relegation-threatened NAC Breda, with both teams finishing the game with 10 men.
Graziano Pelle put the Rotterdammers ahead after five minutes, but Kees Luyckx equalised after 23 minutes and the visitors suffered another setback six minutes later when they had Darryl Janmaat sent off.
The match swung back in Feyenoord's favour when NAC had Eric Botteghin dismissed in the 73rd minute and Lex Immers put the visitors in front. But Nemanja Gudelj made it 2-2 within two minutes as the spoils were shared.
Second-bottom Roda JC came from 4-2 down with seven minutes to go to draw 4-4 at Heerenveen.
Rajiv van la Parra's second goal of the game put Heerenveen two up in the 81st minute, but Sanharib Malki, with his second, made it 4-3 two minutes later and substitute Guus Hupperts equalised in the last minute.
Filip Djuricic had put Heerenveen 1-0 up only for Malki to equalise in the 36th minute. Van la Parra made it 2-1 to Heerenveen five minutes before the break and Alfred Finnbogason extended their lead nine minutes after it.
Bart Biemans made it 3-2 in the 77th minute and there was plenty of drama still to come as Roda snatched a point.