Spain extended their proud home record to stay within three points of the summit in Group C of the Euro 2016 qualifiers, but were made to sweat in a 1-0 win over Ukraine in Seville.
Alvaro Morata's 28th-minute goal proved the winner on a night when Spain enjoyed the vast majority of play, but Iker Casillas had to make a number of saves to keep the scores level in the second half.
However Spain, who have not lost a competitive match at home since June 2003, hung on for a win that keeps them on the coat-tails of Slovakia, who beat Luxembourg 3-0.
The night began with a tribute to the victims of the French Alps air disaster, in which 150 people died when a plane travelling from Barcelona to Dusseldorf crashed in the south of France on Tuesday.
Alvaro Morata, starting thanks to Diego Costa's injury, immediately looked a threat.
In the eighth minute he latched on to Andres Iniesta's through ball but fired wide, and then -- after Isco and David Silva had shots blocked -- appealed for a penalty when he tumbled under the attentions of Yavhen Khacheridi, but the Juventus man was told to get up the by referee.
But for all Spain's early dominance, Ukraine reminded them there was a threat at the other end when Artem Fedetskiy's free kick picked out Ruslan Rotan free of his marker, but his difficult volley flew over.
Spain responded with Silva heading over and Isco firing an ambitious effort wide from the edge of the area, but again it was Ukraine who went closer, with the ball falling to Rotan just inside the area and his early shot flashing wide with Casillas static.
This time Spain got the message as Morata broke the deadlock seconds later, racing on to Koke's fine ball and holding off Khacheridi long enough to bundle the ball past the goalkeeper.
Andriy Pyatov then saved from Silva before an offside flag denied Morata a second, but Ramos has the best chance to double the lead when he headed against the crossbar from Silva's free kick five minutes before the break.
As comfortable as Spain had looked in the first half, they seemed complacent in the second, and Ukraine threatened to make them pay.
Rotan sent in another testing free kick which Casillas had to let bounce before he could touch it thanks to the close attention of Artem Kravets, and then a poor clearance from the Real Madrid goalkeeper gave Rotan another chance, but Casillas atoned for his error with the save.
Spain did not get a clear chance until the 63rd minute, but Morata could not turn home Iniesta's pass and was replaced by Pedro moments later.
Ukraine continued to push, with Casillas punching clear Rotan's effort, and Spain's worries grew when Jordi Alba was forced off clutching his groin in the 78th minute.
Santi Cazorla almost capped the night for the hosts in the 86th minute when a brilliant move ended with his shot being turned around the post by Pyatov.