Miguel Ángel López took a dominant victory on stage four of the Volta a Catalunya, firing in into the overall lead in the process.
The Colombian was locked in a battle with the general classification favourites on the final mountain of the day, but proved himself the strongest man with repeated attacks.
López (Astana) attacked rivals Adam Yates (Mitchelton-Scott), Egan Bernal (Team Sky) and Nairo Quintana (Movistar) in the final 5km, catching the breakaway and riding away to a solo victory.
Race leader at the top of the day Thomas De Gendt (Lotto-Soudal) fought valiantly but was dropped early on the final climb, conceding his advantage to López.
Adam Yates is now second on GC, 14 seconds behind the leader.
How it happened
Another tough summit finish faced race leader De Gendt, over 150.3km from Llanars to La Molina near the French border, as the Belgian looked to hold onto his slender advantage.
The climbing kicked off within the first 50km, with an ascent of the 9.2km-long Coll de Coubet (5.5 per cent average) before a descent and false flat run to the base of the next climb.
Port de la Creueta rises to almost 2,000 metres over 19.9km with an average slope of 4.7 per cent.
The peloton then passed through La Molina on the descent for the first time, continuing downhill before they started the final rise back to the finish.
At 11.4km and an average 4.3 per cent, the test was not as severe as the stage three finish, but with a short descent followed by a further 1km of uphill the stage looked set to shake up the GC once again.
A big breakaway group formed relatively late into the stage, when 25 riders pulled out a gap on the descent from the first climb.
The most significant names included Britain's James Knox (Deceuninck - Quick-Step) and Hugh Carthy (EF Education First), Tony Gallopin (Ag2r La Mondiale), Patrick Bevin (CCC Team), and Marc Soler (Movistar).
Wary of the size and talent, the peloton never let the break build a significant advantage, keeping the gap at under four minutes for the day.
Gregor Mühlberger (Bora-Hangsrohe) and Soler opted to attack the breakaway with 30km remaining, building up a strong 90-second advantage over the next 10km.
The pursuing group was reduced to just eight riders with 14.5km to ride, holding a 39-second advantage to the peloton while the Mühlberger and Soler continued to extend their lead out to two minutes over the chasers.
Team Sky once again set the pace at the front of the peloton for Egan Bernal, as the chasing group were swallowed up at the 10km mark.
Almost in unison, De Gendt slipped from the back of the main group and looked likely to hand over his race lead after three days at the top.
The front pair held a 2-10 lead at this point, securing their hopes of riding to the line together to fight for the stage win.
Sky's pace put plenty of favourites in danger, with Thibaut Pinot (Groupama-FDJ) amongst those slipping away with 8.6km to the line.
Soler and Mühlberger's advantage quickly began to tumble, prompting López to attack from the peloton to try and bridge across.
Deceuninck - Quick-Step's Enric Mas and Richie Porte (Trek-Segafredo) were the next casualties as Bernal hit the front with 7.5km to go.
The Colombian hit the accelerator and rapidly reached López, with Nairo Quintana (Movistar) and Adam Yates (Mitchelton-Scott) both matching the pace.
With that attack the gap to the front duo dropped to 55 seconds, as Bernal led the chasing group of four world-class climbers behind.
López opened another attack and pulled out a 20-second advantage as the chasing group gained on Bernal, Quintana and Yates.
Steven Kruijswijk (Lotto-Jumbo) took the opportunity to bridge across to the Bernal group, followed by Simon Yates who quickly hit the front in support of his team-mate and brother Adam.
López caught Soler and Mühlberger 4.3km from home and immediately hit front, as Simon Yates continued to lead the chase behind.
Adam Yates opened a major attacked inside 4km and pulled the front trio in sight within a few hundred metres, with Bernal chasing desperately behind.
Bernal caught the Brit as they came within 10 seconds of the front of the race with 2.5km to ride.
The short downhill section saw López, Soler and Mühlberger add a few seconds to their advantage as the race hit the final uphill 1km to the line.
Mühlberger was immediately dropped as the gradient rose, leaving López and Soler to ride under the flamme rouge together.
Quintana and Kruijswijk then caught Bernal and Yates behind, but the chase was already futile.
Lòpez kicked away from Soler with 700m to ride and the Spaniard's will was broken.
The Colombian rode hard to the line and only raised his hands in the final moment as he tried to squeeze out every advantage for the GC battle.
Mühlberger caught Soler to pass the line second with Bernal, Quintana, Yates and Kruijswijk all crossing the line on the same time not far behind.
Volta a Catalunya 2019 stage four: Llanars (Vall de Camprodon) to La Molina (150.3km)
1. Miguel Angel Lopez (Col) Astana, in 4-02-07
2. Gregor Mühlberger (Aut) Bora-Hansgrohe, at 16 seconds
3. Marc Soler (Esp) Movistar
4. Egan Bernal (Col) Team Sky
5. Adam Yates (GBr) Mitchelton-Scott , all at same time
6. Nairo Quintana (Col) Movistar, at 19s
7. Steven Kruijswijk (Ned) Jumbo-Visma, at same time
8. Guillaume Martin (Fra) Wanty- Groupe Gobert, at 32s
9. Michael Woods (Can) EF Education First, at 41s
10. Rafal Majka (Pol) Bora-Hansgrohe, at 42s
General classification after stage four
1. Miguel Angel Lopez (Col) Astana, in 17-31-05
2. Adam Yates (GBr) Mitchelton-Scott, at 14 seconds
3. Egan Bernal (Col) Team Sky, at 17s
4. Nairo Quintana (Col) Movistar, at 25s
5. Daniel Martin (Irl) UAE Team Emirates, at 46s
6. Steven Kruijswijk (Ned) Jumbo-Visma, at 56s
7. Michael Woods (Can) EF Education First, at 1-42
8. Romain Bardet (Fra) Ag2r La Mondiale, at 1-44
9. Rafal Majka (Pol) Bora-Hansgrohe, at 2-27
10. Marc Soler (Esp) Movistar, at 2-36
Thank you for reading 20 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1