Ajax fought back from two goals down to lift the Johan Cruijff Shield at the Amsterdam Arena.
Second-half goals from Johann Berg Gudmundsson and Aron Johannsson put AZ Alkmaar, the KNVB Beker winners, ahead, but they were pegged back in normal time thanks to a Jeffrey Gouweleeuw own goal and a Kolbeinn Sigthorsson tap-in.
The Eredivisie champions then clinched the win after 102 minutes through a Siem De Jong header.
After a goalless first half, Alkmaar broke the deadlock six minutes after the break, with Gudmundsson finishing well after an incisive breakaway.
Alkmaar doubled their lead six minutes later thanks to a Johansson tap-in following good work from Roy Beerens and Viktor Elm to set up the chance.
However, two goals in the space of just six minutes put Frank de Boer’s men level.
Ajax were given a helping hand after 69 minutes when Gouweleeuw glanced the ball into his own net before Sigthorsson pounced after Esteban Alvarado spilled a long range effort into his path.
The game then went in to extra time and, after 102 minutes, Ajax went ahead.
After a deep cross from Lucas Andersen on the right hand side, De Jong stole in at the far post to put his side ahead for the first time in the match and secure the silverware.