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.
“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”