Vicente del Bosque's men returned to Soccer City in Johannesburg for the first time since Spain beat Netherlands 1-0 in the final of the World Cup three years ago.
However, it proved a bittersweet occasion as striker Bernard Parker scored the only goal of the game in the friendly with a delicate finish after being played through by Thabo Matlaba.
There was late controversy, though, as Spain made a seventh substitution - the most permitted in a friendly is six - as goalkeeper Pepe Reina replaced the injured Victor Valdes nine minutes from time.
Germany claimed victory as rivalries with England were renewed, Per Mertesacker's second-half header inspiring the visitors to a 1-0 success as Joachim Low's men condemned the hosts to consecutive defeats at Wembley for the first time since 1977.
Netherlands extended their unbeaten run to 17 games with a 0-0 draw against Colombia, despite Jeremain Lens' dismissal in a bad-tempered affair at the Amsterdam Arena.
Belgium have been touted as outsiders for next year's FIFA World Cup, but they are still yet to beat Japan in their history after falling to a 3-2 home loss to Alberto Zaccheroni's men.
The hosts did take the lead through Kevin Mirallas before Yoichiro Kakitani's header and a strike from Keisuke Honda turned the game on its head.
Mainz attacker Shinji Okazaki added to Japan's lead and the visitors held on for a deserved win, despite Toby Alderweireld's late header.
Gibraltar marked their historic debut appearance on the international scene with a credible 0-0 draw with Slovakia.
Fyodor Smolov and Dmitriy Tarasov were on target as Russia came from behind to beat South Korea 2-1, while Marc Janko scored the only goal in Austria's 1-0 victory over United States.
Burak Yilmaz scored in the 89th minute to give Turkey a 2-1 win over Belarus and Republic of Ireland manager Martin O'Neill remains undefeated following his side's goalless stalemate with Poland.
Valter Birsa's second-half strike gave Slovenia a 1-0 win over Canada, while Scotland beat Norway by the same scoreline thanks to a deflected effort from Celtic midfielder Scott Brown.
Elsewhere, Malta overcame Faroe Islands 3-2, Liechtenstein lost 3-0 to Estonia and Kyrgyzstan drew 0-0 with Azerbaijan.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.