Efter drygt tio minuters spel skapde Italien två superlägen för att ta ledningen. Först genom Graziano Pellè, men David de Gea nådde anfallarens nick i sista stund nere vid stolproten. Och strax därefter cykelsparkade Emanuele Giaccherini - de Gea med en liknande reflexräddning - men det var avblåst för hög spark.
Men efter dryga halvtimmen kom öppningsmålet. De Gea kunde inte hålla en hård frispark, och efter några studsar kämpade Giorgio Chiellini sig fram på returen och tryckte in 1-0 till italienarna.
I början av andra halvlek skapade Spanien ett par kvitteringschanser, efter en kort hörna fick Alvaro Morata fint nickläge i boxen - men Gianluigi Buffon med kylig enhandsräddning.
Spanien fortsatte att trycka på - men utdelningen kom aldrig. I stället säkrade Graziano Pellè segern och avancemanget på tilläggstid när han tryckte in 2-0 när spanjorerna chansade.
Italien vidare till kvartsfinal, där väntar regerande världsmästarlaget Tyskland.
Se Pellès 2-0-mål i spelaren ovan.
Italiens elva: Buffon - Barzagli, Bonucci, Chiellini - Florenzi, Parolo, De Rossi, Giaccherini, De Sciglio - Pellè, Eder
Spaniens elva: De Gea - Juanfran, Pique, Ramos, Alba - Busquets, Fabregas, Iniesta - Silva, Nolito, Morata