The win in Rotterdam keeps Louis van Gaal’s men three points clear of Belgium, who won 1-0 against Poland in Warsaw, at the top of Group A4.
Noa Lang put the Dutch in front in the 17th minute with his first international goal and Cody Gakpo quickly made it two.
Brennan Johnson completed a spell of three goals in eight-and-a-half minutes by pulling one back, before Bale came off the bench and scored a 92nd-minute penalty.
But home substitute Depay had the final say as the Netherlands made it three wins from four matches in the tournament, despite being without several first-choice players from the start.
It was a dramatic encounter between two teams who have qualified for the World Cup in Qatar later this year.
Club Brugge forward Lang gave the hosts an early lead with a fine individual strike, turning the Welsh defence and drilling a powerful shot past goalkeeper Wayne Hennessey.
The advantage was doubled midway through the first half as Gakpo scored after his initial effort was blocked.
But Wales hit back less than three minutes later, as Dan James won the ball and fed Nottingham Forest forward Johnson to score for the second time in four days.
Hennessey saved from Gakpo shortly after half-time, while Johnson was denied by Jasper Cillessen at the other end.
Wales manager Robert Page introduced Bale and Aaron Ramsey for his team who are still looking for a first win in the group.
Bale netted a spot-kick after Connor Roberts was fouled to score his 39th international goal and spark wild celebrations on the away bench.
But Wales, who had also levelled in the return fixture against the Dutch in stoppage time last week and then lost, did the same again.
The visitors were caught out as a ball into the box was flicked on and Barcelona’s Depay reacted quickest to score.