The game was stopped just after the start for an half hour as fireworks and smoke bombs damaged the pitch and set an advertising board alight.
Police said 19 people were arrested before kick-off for carrying fireworks and insulting behaviour, but it did not stop an avalanche of projectiles being thrown on to the field from the start, causing an immediate delay.
The game resumed long enough for Ricardo van Rhijn to head home a corner off the underside of the crossbar and put Ajax ahead, prompting another volley of missiles thrown by Ajax supporters gathered behind their own goal.
The players were taken off by the officials as Ajax coach Frank de Boeer went over to the supporters to ask them to behave.
Club director Edwin van der Sar took to the public address to appeal for reason.
"Stop throwing fireworks on the field, it's dangerous," he said. "If it happens again, the game is abandoned."
Within three minutes of the resumption, New Zealand teenager Thomas equalised and four minutes later put his side ahead, converting a rebound after Maikel Van der Werff's free kick hit the woodwork.
Fernandez was sent through by Kamohelo Mokotjo to beat the Ajax defence for the third goal after 22 minutes and got another 10 minutes later, winning an aerial duel with Niklas Moisander to put unfancied PEC 4-1 ahead just past the half-hour mark.
Defender Bram van Polen extended the lead over shell-shocked Ajax four minutes into the second half.
Thomas missed out on a hat-trick with a close in header just two minutes later as Zwolle's fans chanted: "Ten, ten".
PEC had twice lost in the Dutch Cup final in 1928 and 1977 while Ajax were looking to extend their record number of wins in the competition to 19.
They are still odds-on to claim the league title, needing one point from their last two games.
- Sports & Recreation
- Guyon Fernandez