The visitors scored twice in the space of just four first-half minutes to take control of the contest, and Italy were unable to fight back despite Lorenzo Pellegrini halving the deficit with a little under 20 minutes remaining.
It was a scrappy goal that gave Albert Celades's side the lead, with Simone Scuffet only able to parry a tame shot from Denis Suarez back into a dangerous area where Saul Niguez was waiting to acrobatically fire the rebound home.
It was a deserved goal for Spain, and they drove home their advantage four minutes later when Federico Chiesa inadvertently glanced the ball to the back post while trying to clear a corner, setting up Borja Mayoral for a simple header from close range.
The hosts did pull a goal back in the 72nd minute when Pellegrini powered a towering header into the top corner having been left unmarked in the middle of the Spain area.
It was not enough to spark a comeback for Italy, though, as they extended their recent run to just two wins in their last nine outings.