Germany coach Joachim Low had urged the his team to mark their last fixture in 2014 by beating the European champions in Vigo, but the game looked destined to finish goalless until Real Madrid midfielder Kroos struck after 89 minutes to break hearts.
Spain’s substitute goalkeeper Kiko Casilla was handed his international debut and should have kept out Kroos’ long-range effort, but the ball skidded off the surface and bounced over his body and into the net to ensure Die Mannschaft ended their World-Cup winning year on a high, comfortable note.
Loew was without the likes of Andre Schurrle, Marco Reus and Jerome Boateng, while Thomas Muller went off with an injury in the first half as Germany sent Spain crashing to their first home defeat under Vicente del Bosque.
Nevertheless, La Furia Roja were also missing key players such as Andres Iniesta, Cesc Fabregas and David Silva and the hosts ended what has been a difficult year with a defeat at Estadio de Balaidos Vigo.
Nolito, Morata and Bernat all made their first starts for Spain and the youngsters performed up to par but could not just finish off the well-organised Germans.
Nolito had the crowd on their feet just 12 minutes in when he turned away from Antonio Rudiger and tried his luck with a curling right-footed strike from outside the box that Germany Goalkeeper Ziegler palmed away for a corner.
Germany didn’t waste time in responding as Mario Gotze’s volley forced a fine save from Iker Casillas after the midfielder combined well with Bayern Munich team-mate Thomas Muller.
Muller had been off for treatment after picking up a knock in a challenge with Sergio Ramos and was replaced by Leverkusen’s Karim Bellarabi after just 22 minutes.
Ignacio Camacho came on to make his Spain bow at half-time, with Raul Albiol and Marc Bartra also introduced as big names Sergio Busquets, Sergio Ramos and Gerard Pique made way.
Nolito was relishing the occasion and showed class as he forced another fine save from Zieler with a free-kick that was destined for the top corner until the Hannover shot-stopper once again denied him a debut goal.
Espanyol keeper Casilla replaced Iker Casillas on 77 minutes and he was left red-faced when Kroos’ long-range effort beat him a minute from time to give Germany the victory.