Marcus Rashford's first-half penalty opened the scoring in a low-quality affair in Guimaraes, the striker converting a penalty he won when clumsily brought down by Matthijs de Ligt.
The Ajax captain made amends in the second half with a towering header to level the scores before England substitute Jesse Lingard had what seemed a winner ruled out for offside with seven minutes to go.
In the added period Netherlands won the game in farcical fashion, Walker diverting the ball into his own goal after an awful error by his Manchester City team-mate John Stones, before Barkley's poor pass allowed Quincy Promes to seal a final date with Portugal on Sunday.
Steven Bergwijn and Depay fired efforts straight at Jordan Pickford amid sloppy passing from either side and another mistake led to the opening goal for England in the 32nd minute.
De Ligt lost possession and was beaten to the loose ball by Rashford, the Manchester United striker sending Jasper Cillessen the wrong way from the penalty spot.
Jadon Sancho planted a free header straight at Cillessen from Fabian Delph's pinpoint centre before Pickford saved well from Depay following a Walker error.
Georginio Wijnaldum called Pickford into action again before Stones wasted a headed opportunity for England.
Netherlands were steadily building pressure on England's goal, though, and it told in the 72nd minute when De Ligt rose highest to nod home Depay's right-wing corner.
England thought they had won it with seven minutes to go when Lingard raced on to Barkley's pass, but a lengthy VAR check ruled the goal out for the tightest of offsides, then Raheem Sterling clipped the crossbar deep in added time.
And a comedy of errors saw Netherlands nudge ahead in the 97th minute.
A dallying Stones was robbed by Depay and although Pickford made a fine save from his effort, Promes reached the rebound first and his off-target strike was deflected in by Walker.
Promes then wrapped it up in the 114th minute as England imploded, Barkley's under-hit pass allowing Depay to again steal in and this time set up his team-mate for a simple finish.