Miguel Ángel López took the stage four win at the Volta ao Algarve with a late attack as Remco Evenepoel finished third to close in on the general classification.
The Astana rider left his attack until the closing stages, jumping clear and powering away towards the finish despite the best efforts of Dan Martin (Israel Start-Up Nation) to bring him back.
Evenepoel then came across the line in third, leading home Max Schachmann (Bora-Hansgrohe) and Rui Costa (UAE Team Emirates).
Ineos’ Geraint Thomas and Michał Kwiatkowski once again fell away on the final climb, not troubling the top placings.
Evenepoel is now tied on the same time as Martin and Schachmann at the top of the GC, with López now in fourth, only a single second behind.
One stage remains in the Portuguese race, an individual time trial, where the European time trial champion will likely take more time out of his rivals to seal the victory.
How it happened
Koen de Kort was a non-starter after a crash on the previous stage that brought down a number of his Trek-Segafredo team-mates due to an unexpected deep gravel corner.
The day’s break was a sizeable group that included Alpecin-Fenix’s Dries de Bondt and João Rodrigues (W52 / FC Porto), who had built up a gap of two minutes after 30km, that stuck for the next 100km.
Then Rodrigues, who is from the Algarve region, attacked on the third category climb to Alte 40km from the finish, dispensing with his breakaway companions. The Portuguese rider held a slim margin ahead of the chasers with the peloton then over a minute and a half further back.
Trek-Segafredo’s Edward Theuns slipped off the front of the peloton with 26km to go, taking Vincenzo Nibali with him, who then kept on going up the road. Nibali soon reached De Bondt, who was caught in between Rodrigues and the peloton.
Nibali was brought back in by the bunch with 21km remaining, his move having brought Rodrigues back to within 30 seconds of the peloton. Deceuninck – Quick-Step soon took over at the front, with Florian Sénéchal finally closing the gap to the lone leader and bringing the race back together with 17km to the finish.
Bora-Hansgrohe’s Lukas Pöstlberger came to the fore with 13km remaining, with Max Schachmann then getting on his wheel. 3km later more of the GC guys appeared at the head of the reduced bunch as they began to position themselves for the final climb.
As they rounded the team buses parked at the bottom of the ascent, CCC came to the front, the pack swinging right onto the final climb with 3km to go.
Astana then came to the front, with Amaro Antunes (W52 / FC Porto) showing his face in second wheel. Once again, Geraint Thomas and Michał Kwiatkowski struggled, dropping off the back with a lot of climbing still to go.
Evenepoel soon found himself in fourth wheel, behind Rui Costa and Antunes as Astana continued to drive the pace, setting up López for a devastating attack.
The Colombian began powering away, with Evenepoel fairly happy to maintain his own pace as Dan Martin scrambled to follow López. The Irishman stamped on his pedals as he tried to narrow the gap,but López had gone clear and crossed the line two seconds clear of Martin.
After Martin came Evenepoel, who led home Schachmann and Costa, with one second separating the four riders going into tomorrow’s decisive individual time trial, which should crown Evenepoel as the 2020 race winner.
Volta ao Algarve 2020, stage four: Albufeira to Malhão (169.7km)
1. Miguel Ángel López (Col) Astana, in 4-16-25
2. Dan Martin (Irl) Israel Start-Up Nation, at two seconds
3. Remco Evenepoel (Bel) Deceuninck – Quick-Step, at 4s
4. Max Schachmann (Ger) Bora-Hansgrohe, at same time
5. Rui Costa (Por) UAE Team Emirates, at 5s
6. Simon Geschke (Ger) CCC, at 14s
7. Amaro Antunes (Por) W52 / FC Porto
8. Bauke Mollema (Ned) Trek-Segafredo, both at same time
9. Jan Polanc (Slo) UAE Team Emirates, at 19s
10. Tim Wellens (Bel) Lotto-Soudal, at 21s
General classification after stage four
1. Remco Evenepoel (Bel) Deceuninck – Quick-Step, in 18-59-35
2. Dan Martin (Irl) Israel Start-Up Nation
3. Max Schachmann (Ger) Bora-Hansgrohe, both at same time
4. Miguel Ángel López (Col) Astana, at one second
5. Rui Costa (Por) UAE Team Emirates, at 3s
6. Amaro Antunes (Por) W52 / FC Porto, at 18s
7. Bauke Mollema (Ned) Trek-Segafredo, at same time
8. Tim Wellens (Bel) Lotto-Soudal, at 19s
9. Simon Geschke (Ger) CCC, at 24s
10. Frederico Figueiredo (Por) Atum general / Tavira / Maria Nova Hotel, at 31s