The matches will be at San Siro in Milan on Oct. 6 and the Juventus Stadium in Turin a day later, respectively, UEFA said after an Executive Committee meeting via video conference.
The final will take place in Milan on Oct 10, while the third-place playoff will be held the same day in Turin.
Italy, who topped Nations League Group A1, will face Spain for the first time in a major tournament since they beat them 2-0 in the last-16 of Euro 2016.
Their most recent meeting in a World Cup qualifier saw Spain win 3-0 in Madrid three years ago and they are in form after thrashing Germany 6-0 in Seville en route to topping Group A4.
"Like us, they have a lot of new players and are still putting out a strong team. They have a different style now but are still a technical side," Italy coach Roberto Mancini said.
Spain boss Luis Enrique added: "Italy may look a little like us in that they want to regain the level of yesteryear.
"They're in a period of change. We have time until October to study them and we'll see their strengths and weaknesses."
Group A3 winners France renew their rivalry with Belgium, having beaten them 1-0 in their last meeting at the 2018 World Cup semi-finals in Russia before going on to win the tournament.
Meanwhile, UEFA said the Albanian capital Tirana would host the first final of its new third-tier club competition - the Europa Conference League - in 2022 at the National Arena.
The governing body added Romania and Georgia will co-host the 16-team European Under-21 Championship finals in 2023.
It also said the Executive Committee had decided to remove a ban imposed on Oct. 20 on UEFA competition matches being played in Azerbaijan and Armenia.
Armenia, Azerbaijan and Russia said last month they had signed a deal to end the military conflict over the Nagorno-Karabakh region after more than a month of bloodshed.