The two nations entered the match level on 16 points at the top of the section, but Spain have taken a big step towards securing a spot at next summer's World Cup courtesy of a double from Isco and late Alvaro Morata strike.
Marco Asensio was given his first senior start for Spain in the false nine position, while David Silva and Isco were also selected as head coach Julen Lopetegui left Morata and David Villa on the bench.
As for Italy, there was just a fourth cap at full-back for Leonardo Spinazzola, while Andrea Belotti was joined in the final third by Ciro Immobile, with Lorenzo Insigne and Antonio Candreva starting out wide.
Marco Verratti set the tone inside the opening four minutes when the Paris Saint-Germain midfielder was booked for a lunging challenge on Spain's Sergio Busquets, with both teams looking to gain an early foothold in the match.
Italy centre-back Leonardo Bonucci was fortunate not to pick up a red card for a last-man challenge on Asensio in the 12th minute after the Real Madrid attacker had broken through, but the visitors fell behind from the resulting free kick as Isco picked out the top corner with a stunning effort.
Four minutes later, Spain had a super chance to double their lead when Gerard Pique met a cross from Dani Carvajal, but the Barcelona centre-back missed the crossbar during an end-to-end period of the match.
Italy were dangerous on the counter-attack, but Spain were the more incisive in the final third, and Carvajal saw a long-range strike deflected just wide in the 37th minute as the hosts looked to double their advantage.
Spain's second of the night came in the 40th minute when Isco worked some space outside the Italy box before expertly whipping the ball into the far corner as Lopetegui's side took full control of the match before the interval.
Italy had the first real chance of the second period when Immobile found Insigne just outside the Spain box, but the number 10 could not find a route past De Gea, who made another smart save down low.
The visitors had another opportunity in the 54th minute when Belotti was the first to react to a high ball inside the Spain box, but the Torino striker planted his header over the crossbar under pressure from Pique.
Asensio sent one just wide of Buffon's post in Spain's first half-chance of the second period, before Koke missed the crossbar with a powerful effort just past the hour as the score remained 2-0 in the Spanish capital.
Buffon had to be alert to keep out a close-range Carvajal effort in the 68th minute after a wonderful piece of skill from Isco had released his Real Madrid teammate, and that prompted two Italian changes as Eder and Federico Bernardeschi entered the action for the final 20 minutes.
Morata replaced Iniesta in the 72nd minute as Lopetegui made his first change of the night, and the Chelsea forward almost broke into a one-on-one situation with Buffon moments after entering, but Andrea Barzagli was across to barge his former Juventus teammate to the ground with a fair challenge.
Morata was not to be denied, however, with the substitute finishing from close range in the 77th minute after Ramos had delivered a sensational cross into the Italian box.
Morata had a second disallowed for offside in the 89th minute, but there was an almighty roar inside the stadium in the 90th minute when Villa was introduced for Isco as the New York City FC forward represented Spain for the first time since the 2014 World Cup.
Next up for Spain is a trip to Liechtenstein on Tuesday, while Italy, who now look almost certain to finish second in the group, will look to bounce back when they host Israel on the same night.