Mario Gaspar scored a stunning acrobatic volley as Spain ended England's 15-match unbeaten run in Alicante.
Despite having his back to goal, the Spain right-back managed to beat Joe Hart with a flying volley from Cesc Fabregas' pass.
It was a wonderful goal worthy of winning any match, but Santiago Cazorla made sure of the 2-0 win eight minutes from time.
England, who started with Wayne Rooney on the bench, held their own for much of the first half. Ryan Bertrand and Raheem Sterling impressed down the left, but eventually Roy Hodgson's men crumbled under intense pressure and Spain ran out deserved winners.
Hodgson's men had the chance to prove they were capable of going toe to toe with Europe's best, but they came up short.
The Spanish dominated possession from the first whistle and England did not help themselves by giving the ball away regularly.
Michael Carrick, who was carried off on a stretcher late on, looked lost in midfield and Fabian Delph was wasteful too.
Their run may have been impressive, but on this evidence they have a long way to go before they can call themselves European Championship contenders.
It was clear from kick-off that Gerard Pique's declaration he supported independence for Catalonia had not gone down well with the vast majority of Spain fans.
Every time the Barcelona defender touched the ball, whistles and boos rang out around inside the Estadio Jose Rico Perez.
That aside, the 29,500 spectators did their best to create a party atmosphere inside the open-air stadium.
They were here to see a fiesta of football and their players gave it to them.
In the first half the hosts enjoyed 68 per cent possession. Cesc Fabregas, Andres Iniesta and Thiago Alcantara hogged the ball and attempted to conjure up an opening goal.
Fabregas telegraphed a beautiful 40-yard ball over the England defence for Diego Costa, but Phil Jones recovered just in time to deny the Chelsea striker.
It looked like Pique might have given Spain the lead when his effort looped up in the air off Carrick, but the ball dropped just wide.
Carrick, unable to keep up with the pace of play, was booked for a high tackle on the troublesome Thiago.
Luckily for England, Thiago suffered an injury and was substituted for Cazorla.
When Spain finally allowed England to have the ball, they found the best use for it down the left.
Sterling and Bertrand whipped in low crosses, but no one could finish. Harry Kane and Delph all registered efforts on target, but Iker Casillas had no trouble saving them.
Hodgson brought debutant Eric Dier on for Delph while Dele Alli replaced Adam Lallana.
Even without Thiago and Andres Iniesta, who was substituted at the break, Spain had no trouble keeping the ball, and it looked inevitable they would score.
Hart saved well to deny Jordi Alba. At the other end, Kane fizzed a dipping drive just wide.
Any hopes England had of taking the lead were dashed in the 72nd minute when Fabregas chipped a ball into the box and Mario unleashed an acrobatic volley that flew past Hart. The whole ground rose to their feet and applauded.
Twelve minutes later Spain secured the result. Cazorla was given space on the edge of the box and he took full advantage, curling the ball in off a post. Hart thought the goal should not have stood. He complained with the linesman and was booked.
He could have no complaints about the result, however. England had been soundly beaten.