Debido al descenso de la Juventus a la Serie B, Cannavaro fue fichado por el Real Madrid el 19 de julio de 2006 junto con su compañero de equipo, el brasileño Émerson, por aproximadamente siete millones de euros para jugar las siguientes dos temporadas, con opción a una tercera.