Striker Jerry Bengtson dumped Spain out of the Olympics as Honduras pulled off a major shock at St James' Park.
The 25-year-old's seventh-minute header, his third goal in two games, ensured that the Spaniards, whose senior team are reigning World and European champions, will go home early following an opening defeat by Group D leaders Japan.
In an ill-tempered encounter, Iker Muniain hit the post and substitute Rodrigo the bar amid a second-half Spanish onslaught, but the Central American side battled heroically to keep Luis Milla's star-studded side at bay.
Bengtson got the game off to a sensational start when he climbed high to power Roger Espinoza's driven cross past Manchester United goalkeeper David de Gea.
Spain gradually worked their way into the game, with Chelsea's Juan Mata smashing a left-foot volley just wide and then going even closer on the stroke of half-time.
Espinoza might have deepened Spain's woe had his 51st-minute header not come back off the post, but Adrian Lopez hit the bar at the other end three minutes later with the Spaniards swarming all over Honduras.
Athletic Bilbao midfielder Muniain blasted just wide and then rattled the foot of the post after another enterprising run, but it took a flying save from keeper Jose Mendoza to keep out Rodrigo's 72nd-minute header, and the striker headed against the bar eight minutes from time.