Ajax won the ball high up the pitch on 17 minutes with Noussair Mazraoui playing a one-two with Tadic before the Serbia international struck the ball into the net from 12 yards out.
Benfica equalised on 25 minutes through Haller who, while trying to clear a ball, put it into the back of his own net.
It took him just four minutes, however, to right his previous mistake. He beat Jan Vertonghen and after a save from Odisseas Vlachodimos, Haller tapped the rebound into the net from eight yards out.
Ajax had a penalty appeal down one end of the pitch when Benfica were given the opportunity to counter-attack on 72 minutes. Remko Pasveer saved a shot from Goncalo Ramos but Yaremchuk was there to head it into the net.
The referee went back to look at the earlier penalty decision but it was waved away by VAR.