With Feyenoord travelling to Ajax for Sunday morning's (local time) 'Classic' showdown, John Stegeman's side kept the pressure on in the race for the European places.
Midfielder Iliass Bel Hassani made the breakthrough on 54 minutes when he latched onto a loose ball at the edge of the penalty area before driving a low shot into the bottom left corner.
Jaroslav Navratil (81) added a late second to send Heracles two points ahead of the Rotterdam club.
FC Twente put more distance between themselves and the relegation places after a late 3-1 win at Heerenveen.
Henk Veerman (13) had put the home side ahead after a mix-up in the penalty area, but defender Bruno Uvini (40) headed in an equaliser before half-time.
Heerenveen were reduced to 10 men on 69 minutes when defender Joost van Aken was sent off for a second yellow card.
Twente, who had beaten Utrecht in midweek, finally made the extra man count with just a minute left when Jerson Cabral slotted in an angled shot from the right.
Midfielder Hakim Ziyech added a third on the break in stoppage-time, the Twente players afterwards dedicating the victory to team-mate Stefan Thesker, who had a tumour removed earlier this week.
A well-taken second-half goal from in-form striker Vincent Janssen proved enough to give AZ a 1-0 win over Vitesse at AFAS Stadion.
Jansen scored a seventh in five games on 62 minutes when he lifted the ball into the penalty area before sending a chip over the goalkeeper.
John van den Brom's side climbed into the top six after a fifth straight Eredivisie win of 2016.
Earlier in the day, a fine late equaliser from substitute Kristoffer Peterson saw Roda JC draw 2-2 at ADO Den Haag.
Midfielder Kevin Jansen (20) put the home side ahead from 25 yards after a poor defensive mix-up, but Tom van Hyfte (45) equalised just before half-time after a ball in from the right was allowed to bounce through the six-yard box.
Den Haag led again when Timothy Derijck (53) glanced a free-kick in from close range with a backward header.
But with just nine minutes left, Peterson charged forwards down the left before cutting inside to crack a superb 25-yard strike into the top right corner and earn a share of the points.