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.
UEFA Nations League (@UEFAEURO) June 6, 2019
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.
What does it mean? Tired legs cause regular errors
Gareth Southgate opted to rest his fit-again captain Harry Kane - who returned from injury in the Champions League final - and others struggled to maintain high energy, with concentration levels often flagging.
But there is one more big game to come for Netherlands, whose Virgil van Dijk and Georginio Wijnaldum can add the Nations League to their Champions League crown collected last weekend in Madrid.
De Jong ready for Barcelona move
With both sides struggling to retain possession at the Estadio D. Afonso Henriques, Barcelona-bound Frenkie de Jong stood out as a shining light in midfield. The Ajax star looks poised to impress on a bigger stage.
Stones' moment of madness costs England
Defensive errors were a feature of both sides, but Stones played himself into trouble with two needless turns on the ball just outside his box. Depay rapidly closed him down and another mistake from Walker, who was slow to react, cost England any chance of reaching the final.
Key Opta Facts:
- England have lost three of their last four international matches against the Netherlands (W1 D0 L3).
- Netherlands have only lost two of their last 15 international matches against England (W6 D7 L2) and lost just one of their six competitive games against the Three Lions (W3 D2 L1).
- Two of England's last three defeats when leading at half-time have been against the Netherlands (also March 2016) – the other was against Croatia in the World Cup semi-final.
- Marcus Rashford has scored four goals in his last seven international appearances for England – one more than in his first 25 games for England (3).
- Raheem Sterling became the third youngest player to reach 50 caps for England (24y 180d), behind only Wayne Rooney in 2009 (23y 159d) and Michael Owen in 2003 (23y 179d).
- England have scored with 20 of their last 21 penalties (excluding shootouts), with only Harry Kane failing in that time against Turkey in May 2016.
Netherlands will play Euro 2016 champions Portugal in Sunday's final, with the Three Lions' hopes of claiming their first major silverware since the 1966 World Cup over. Southgate's side will instead face Switzerland in the third-place play-off earlier on the same day.