Dublin - England will meet the Netherlands for a place in the inaugural Nations League final with hosts Portugal facing Switzerland in the other semi-final after Monday's draw in Dublin.
Portugal and Switzerland will meet in Porto on June 5 with England and the Netherlands clashing in Guimaraes on June 6.
The third-place playoff and final will take place on June 9, with the latter game being staged in Porto.
All four sides qualified for UEFA's new competition -- designed to replace meaningless friendly matches with competitive internationals -- by winning their three-team groups in the top tier of the Nations League.
England came from behind to late on to beat Croatia 2-1 at Wembley last month and leap from bottom of a group also including Spain to the top.
The Netherlands also needed a late show to edge out world champions France by scoring twice in the final five minutes in a 2-2 draw away to Germany.
However, Switzerland arguably produced the most stunning comeback in overturning a 2-0 deficit against Belgium to win 5-2 in their final group game.
European champions Portugal were unbeaten in four games against Poland and Italy to secure their place and the honour of hosting the tournament.
There could be disappointment for some travelling fans, though, as the Dom Afonso Henriques stadium in Guimaraes holds just 30,000 with England and the Dutch both expected to bring a strong support.