Italy, with defender Giorgio Chiellini making his 100th appearance, suffocated Portugal in the first hour with their pressing and created numerous openings with their intricate passing moves.
But they ran out of steam in the last half hour and the European champions held out fairly comfortably.
Portugal have seven points from three games in the three-team group, two ahead of Italy who have finished their campaign. Poland, who visit Portugal for the group's final game on Tuesday, have one point and have already been relegated.
They are also in line to host the semi-finals and finals in June as Italy and Poland were the only other two countries to express an interest in staging the tournament. The decision still has to be ratified by UEFA on Dec. 3.
Last November, Italy failed to qualify for the World Cup for the first time in 60 years after being held by Sweden at the same stadium in Milan.
"We suffered in the first half when we had a lot of difficulty," said Portugal coach Fernando Santos. "The first 15 minutes of the second half were more even and after that we were no longer under pressure. The result ended up being a fair one as Portugal were better in the second half."
A small part of the crowd booed Italy defender Leonardo Bonucci, who left AC Milan after one season at the club to return to Juventus in August.
Italy had an early chance when Lorenzo Insigne's long-range shot was parried by Rui Patricio and Ciro Immobile blasted the rebound over the bar.
In what was a hugely promising display by Roberto Mancini's side, Alessandro Florenzi drove a low shot narrowly wide before Marco Verratti threaded a ball through to Immobile and this time Patricio saved the shot with his leg.
Another neat moved ended with Jose Fonte blocking Federico Chiesa's shot early in the second half.
Portugal, who have not picked Cristiano Ronaldo since the World Cup by mutual agreement, were more threatening as the game wore on.
Substitute Joao Mario shot over on the turn after Joao Cancelo worked an opening on the right and Gianluigi Donnarumma made a difficult save from William Carvalho's low shot.
Lorenzo Pellegrini's header was comfortably saved by Patricio as Italy had a final fling in stoppage time.
"I think it was an excellent performance, although we had a quiet spell in the second half and we obviously have to do that little bit more to find the goal," said Italy coach Roberto Mancini.
"It was a step forward in relation to the last game against Poland. We are on the right track."
(Writing by Brian Homewood; Editing by Toby Davis)