The unheralded Piedra attacked from a 10-man breakaway on the final climb of the 186.5km stage in northern Spain to take a first ever Vuelta stage win for his Pro Continental second tier Spanish team Caja Rural.
Race leader Joaquim Rodriguez (Katusha) finished alongside Spanish rivals Alberto Contador (Saxo Bank-Tinkoff) and Alejandro Valverde (Movistar) more than nine minutes behind Piedra to preserve his red jersey.
Rodriguez leads Contador by 22 seconds on GC with Valverde moving up to third, 1:41 down, after British hope Froome (Team Sky) lost 35 seconds on the final ascent to drop to fourth in the overall standings, 2:16 in arrears.
Twenty-six-year-old Piedra made his move at the start of the gruelling final climb, which the 10-man leading group had started with an advantage of almost 14 minutes over the peloton.
Spain's Pablo Lastras (Movistar), Germany's Simon Geschke (Argos-Shimano) and Kazakhstan's Andrey Kashechkin (Astana) tried to lead the chase, but as soon as Piedra opened up a gap of 20 seconds there was no looking back for a man whose previous best result was a stage win in the 2009 Volta a Portugal.
Piedra rode the final 11km alone and had more than enough time to do up his jersey, salute the crowd and blow some kisses as he crossed the line to take a memorable win.
"I was waiting for the right moment to attack and I was confident and felt good," said an ecstatic Piedra. "I just went for it and then it was a strong personal test for me to hold on. It's good for Caja Rural because we're a small team and this is one of the biggest stages in world cycling."
Fellow Spaniard Ruben Perez (Euskaltel) took second place ahead of Frenchman Lloyd Mondory (Ag2r-La Mondiale) and Piedra's Caja Rural team-mate David de la Fuente, 2:02 off the pace.
Lastras - a triple Vuelta stage winner - was fifth ahead of Geschke. Belgian Kevin Seeldraeyers (Astana) was seventh before Kashechkin, Spain's Vincente Reynes (Lotto Belisol) and Uzbek national champion Sergey Lagutin (Vacansoleil-DCM) arrived in dribs and drabs from the initial break.
Valverde - wearing the green jersey - led Rodriguez and Contador - wearing the white combined jersey - over the line to take 11th place, 9:25 down on Piedra, marking an end to a thrilling three-way duel on the ascent to Lagos de Covadonga.
Team Sky had been setting the pace in the peloton ahead of the final climb, but it was the Saxo Bank team of Contador who took the race by the scruff of its neck as the road headed upwards.
Jesus Hernandez and Daniel Navarro both jumped ahead of the pack only to be foiled by Movistar's Colombian rider Nairo Quintana. The trio were joined by Euskaltel pair Igor Anton and Amets Txurruka as the main GC favourites prepared the ground for battle.
With Froome trailing on the back of the main group around 6km from the summit, Valverde made the first attack. Rodriguez and Contador both responded and the trio soon caught the cluster of riders just up the road. Froome, surrounded by his Colombian lieutenants Rigoberto Uran and Sergio Henao, did not have the strength to reply.
Anton tried to hold on with his fellow Spanish rivals, but a huge attack by Contador 5km from the finish was enough to see him and Quintana dropped. Moments later, as Piedra was celebrating his win 4km up the road, Contador made another stinging attack. This time only Rodriguez could reply.
Once the race leader had returned to the wheel of his main opponent in this year's race, the pair seemed to declare a stalemate. As Rodriguez and Contador appeared to slow for a breather on a flat section 3km from the finish, Valverde and Quintana roared up behind and took them by surprise.
On a steep 13% section Contador put in yet another dig, only to be matched by Rodriguez and then, later, by the Movistar pair. Quintana then zipped clear to pave the way for Valverde, who took up the final sprint in the final kilometre but was matched piece-for-piece by his rivals.
A truce was called as green, red and white crossed the line to take the same time, 9:25 down on Piedra. Quintana and Anton crossed soon afterwards before Poland's Tomasz Marczynski (Vacansoleil-DCM) led a small group containing Froome, Moreno, Dutchman Robert Gesink (Rabobank) and American Andrew Talansky (Garmin-Sharp) over the line, exactly 10 minutes down on the stage winner.
"It was a really tough climb today and I'm definitely suffering," said Froome after dropping out of a podium position. "I'm just trying to do the most I can every day. I'm not sure where I'm going to end up, I'll just do what's possible."
The Vuelta continues on Monday with a third successive day in the mountains - and perhaps the hardest. The 183.5km stage 16 includes four categorised climbs including the gruelling final ascent of Cuitu Negru.