With the tournament in Russia less than three months away, a match between the two previous world champions at the Esprit Arena always looked a blue-chip affair and the game mostly lived up to the billing.
But Germany levelled before the break with a fine goal of their own, Thomas Muller picking out David de Gea's top-right corner from 25 yards.
De Gea made a pair of superb stops to keep Spain level, a flying save from Julian Draxler drawing applause from the Paris Saint-Germain man before the goalkeeper plunged low to his right to keep out Ilkay Gundogan's placed effort.
Mats Hummels headed on to the top of the crossbar as Germany edged a second half disrupted by many substitutions from coaches Joachim Low and Julen Lopetegui, but a draw was a fair result.
7 - The last 7 goals for @DFB_Team_EN have been scored by 7 different players (Wagner, Rüdiger, Goretzka, Can, Werner, Stindl and Müller). Variety. #GERESP pic.twitter.com/wkn6ZIUYCX — OptaFranz (@OptaFranz) March 23, 2018
Spain dominated the early stages and opened the scoring in the sixth minute.
Iniesta was given time and space to pick a pass and slid Rodrigo through on goal, the striker giving Hummels the slip and finishing well past Marc-Andre ter Stegen.
Jonas Hector almost earned Germany an immediate reply but sent a rocket of a volley flying narrowly over the angle after a poor clearing header from Gerard Pique.
Iniesta, running the game in midfield, lashed off-target at the end of a rapid Spain break that flowed beautifully through Koke, Isco and David Silva.
But as Germany gradually gained control the hosts levelled in stunning fashion in the 35th minute.
Toni Kroos and Sami Khedira shuffled the ball from the left to Muller, who marked his 90th cap in style with a lazy swing of his right boot that arrowed the ball out of De Gea's reach.
Draxler tried to replicate Muller's goal shortly after the restart but this time De Gea made a wonderful save, diving high to his left to tip the 25-yard drive away.
Isco should have finished off another brilliant Spain move but prodded Jordi Alba's cross straight at Ter Stegen, De Gea then making another top-class save to deny substitute Gundogan when Germany countered at speed.
The Manchester United goalkeeper was helpless as Hummels rose to meet a 65th-minute Kroos free-kick, though, but the defender misjudged his leap and nodded against the woodwork.
Timo Werner and Silva both sent efforts into the side-netting and Jerome Boateng had to make a terrific block to deny another substitute, Diego Costa, to ensure both sides remain unbeaten since Euro 2016.