Lasse Schone's early goal set up Ajax for an afternoon of celebration but Simon Cziommer's equaliser in the 22nd minute ensured a nervy finish as Ajax opened up an unassailable lead at the top of the table to seal the title with one match remaining.
The draw moved Ajax to 70 points, out of the reach of the chasing pack, and helped them put last week's shock 5-1 loss to PEC Zwolle in the Dutch Cup final behind them.
Schone struck home a free kick via the underside of the crossbar from some 30 metres out to put Ajax into a 12th minute lead.
But Cziommer equalised in similar circumstances and Heracles might have spoilt the party had it not been for a key save from Ajax goalkeeper Jasper Cillessen 10 minutes into the second half.
With Heracles needing a point to ensure their top flight status for next season, the match petered out to a tepid finish, followed by the presentation of the trophy to Ajax.
Feyenoord secured the other Champions League berth for next season as they confirmed second place with a 5-1 win over SC Cambuur, followed by an emotional farewell to coach Ronald Koeman who leaves the club at the end of the season.
Twente Enschede sealed third place and a Europa League slot after recovering from conceding a first minute goal to beat NEC Nijmegen 5-2 away.
- Sports & Recreation
- Simon Cziommer