England will play the Netherlands in the semi-final of the Nations League on June 6, 2019 in Portugal.
The hosts face Switzerland on June 5 at Porto's Estadio do Dragao in the other semi-final, with the final on June 9.
"It's a very exciting game to look forward to and a second semi-final for us," said England manager Gareth Southgate.
The winners of the Nations League will receive £6.7m in prize money, and the fourth-placed team £4m.
England reached the last four of the World Cup in Russia this summer.
The Netherlands qualified for the last four thanks to a 90th-minute equaliser in their final group game in Germany.
Switzerland piped Belgium to top spot by virtue of their superior head-to-head record, beating them 5-2 in their final game.
European champions Portugal progressed at the expense of Poland and Italy.
The Nations League, which began in September and featured 55 nations in four tiers, also provides a second opportunity to qualify for Euro 2020.
They qualified for the Nations League semi-finals by finishing top of a group containing Croatia and Spain.
The game against the Dutch, managed by Ronald Koeman, at Estadio D Afonso Henriques in Guimaraes will be the first competitive meeting between the sides since Euro 96, when an England side containing Southgate won 4-1.
"We play a team in Holland who are at a similar stage to us - developing, lots of exciting young players in both sides - and you can see the impact Ronald has had," said Southgate.