Siem de Jong led the way with a brace as Ajax hammered RKC Waalwijk to reach the final of the KNVB Beker.
The hosts edged the first half as they took a 2-1 lead with goals from Lorenzo Ebecilio and Mounir El Hamdaoui sandwiching a Daley Blind own goal.
But they pulled away from their second-tier opponents after the break thanks to two from De Jong and Demy De Zeeuw's strike - and could even afford a Miralem Sulejmani penalty miss.
Ajax will meet FC Twente, who beat FC Utrecht yesterday, in the final.
Ebecilio put the hosts ahead after 13 minutes as he latched onto a pass from Miralem Sulejmani and drilled home a shot from 16 yards.
RKC were level 14 minutes later with Blind the unwitting restorer of parity.
The defender attempted to head Derk Boerrigter's free-kick over the bar for a corner but instead deflected the ball into his own net.
Two minutes later the visitors could have taken an unlikely lead when Derk Boerrigter fired narrowly over.
But from there, Ajax took over.
They went ahead after 33 minutes as Sulejmani played Blind's cross back across goal and El Hamdaoui was on hand to tap home from two yards.
Ten minutes into the second half, De Jong grabbed his first, finishing firmly from Jan Vertonghen's cross.
Vertonghen was again the creator three minutes later, playing the ball across the face of goal for De Zeeuw to finish simply.
Robert Braber brought down Sulejmani in the box after 72 minutes but the latter's decision to send his spot-kick straight down the middle backfired as Ohad Levita blocked the ball.
It mattered little though, as De Jong capped the win off with a lovely goal five minutes from time, taking the ball past two defenders before finishing from 12 yards.