On what was his 50th cap, Raheem Sterling was afforded the honour of captaining his country, becoming the first City player to skipper England in a competitive international since Colin Bell in May 1972.
And England, who lost out in last year’s World Cup semi-final to Croatia, made the best possible start, taking a first-half lead from a Marcus Rashford penalty.
However, the Dutch were a constant threat and Ajax central defender Matthijs de Ligt, who had brought down Rashford to concede the penalty, atoned for that error by heading home to level 11 minutes from time.
England - who had also lost a World Cup semi-final in 1990 and at Euro 96 - thought they had won the game seven minutes from time when substitute Jesse Lingard found the target after a fine move only for the effort to be ruled out for offside by VAR..
Then deep in injury time Sterling almost conjured up a moment of magic with a sublime curling effort which struck the top of the bar.
But in extra time an impressive Dutch side capitalised on two uncharacteristic England errors to score twice through a Walker own goal and substitute Quincy Promes and so seal their place in Sunday’s final.
While Holland now look forward to the final with Portugal on Sunday night in Porto, England will tackle Switzerland in the third and fourth place play-off the same day in Guimares, kick-off 2pm.