Rui Costa timed his sprint finish to perfection to claim a maiden Vuelta a Espana victory on stage 15.
The Intermarche-Circus-Wanty rider slowed the pace before accelerating across the line to beat Lennard Kamna and Santiago Buitrago.
Defending champion Remco Evenepoel came fourth as he continues his recovery after finishing 27 minutes off the pace on Friday's climbs.
"I believed in myself," said Portugal's Costa.
After achieving a first Grand Tour win since 2013, he added: "Winning a stage of La Vuelta is very important for me and for the team. I'm very, very happy."
Germany's Kamna, of Bora-Hansgrohe, did well to finish second after overcoming a crash in the final three kilometres.
Evenepoel, who bounced back from a poor stage 14 with a superb win on Saturday, launched a breakaway with just over 80km left.
The Belgian ran out of steam with 15km remaining, but pushed hard late on to finish two seconds behind Costa.
However, he is 16 minutes behind race leader Sepp Kuss, who retains the leader's red jersey ahead of Jumbo-Visma team mates Primoz Roglic and Jonas Vingegaard.
Monday is a rest day on the Vuelta, but the riders will return for Tuesday's 120.5km ride from Liencres Playa to Bejes, which is mostly flat but ends with a steep climb.
Stage 15 results
1. Rui Costa (Por/Intermarche-Circus-Wanty) 3hrs 30mins 56secs
2. Lennard Kamna (Ger/Bora-Hansgrohe) Same time
3. Santiago Buitrago (Col/Bahrain Victorious)
4. Remco Evenepoel (Bel/Soudal Quick-Step) +2secs
5. Andreas Kron (Den/Lotto-Dstny) Same time
6. Einer Rubio (Col/Movistar Team)
7. Cristián Rodríguez (Spa/Team Arkea-Samsic
8. Chris Hamilton (Aus/Team DSM-Firmenich)
9. Nico Denz (Ger/Bora-hansgrohe) +36secs
10. Jimmy Janssens (Bel/Alpecin-Deceuninck) +1min 7secs
General classification after stage 15
1. Sepp Kuss (US/Jumbo-Visma) 54hrs 38mins 42secs
2. Primoz Roglic (Slo/Jumbo-Visma) +1min 37secs
3. Jonas Vingegaard (Den/Jumbo-Visma) +1min 44secs
4. Juan Ayuso (Spa/UAE Team Emirates) +2mins 37secs
5. Enric Mas (Spa/Movistar Team) +3mins 6secs
6. Marc Soler (Spa/UAE Team Emirates) +3mins 10secs
7. Mikel Landa (Spa/Bahrain Victorious) +4mins 12secs
8. Aleksander Vlasov (Rus/Bora-Hansgrohe) +5mins 2secs
9. Cian Uijtdebroeks (Bel/Bora-Hansgrohe) +5mins 30secs
10. Joao Almeida (Por/UAE Team Emirates) +8mins 39 secs