Tim Wellens ignited the decisive move, with Christophe Laporte and Marcin Budzinski quickly joining him. The trio opened a small but dangerous gap, hovering around five seconds with three kilometres to go.
Given Laporte started the day just 50 seconds down on GC and Wellens 54 seconds back, Movistar were forced into a full chase. Cofidis also contributed to the pursuit as the threat grew on the approach to the uphill drag into Pozoblanco.
The attackers were finally caught inside two kilometres, restoring order just in time for a reduced bunch sprint.
Visma lead, Crabbe delivers
Team Visma | Lease a Bike took control under the flamme rouge with four riders on the front. Axel Zingle launched the sprint, Søren Wærenskjold following the wheel, while Laporte moved up through the final metres.
But it was Crabbe who produced the decisive acceleration, timing his effort perfectly to take the stage win.
It marks a major result for Team Flanders - Baloise on a day that had looked destined for the more established uphill sprinters.
GC remains tight
Despite the late scare, Ivan Romeo survives another day in yellow. The Golden Kilometre earlier in the stage had already shuffled seconds among the contenders, and the aggressive finale underlined just how narrow the margins remain heading into the final stage.
Movistar passed the test, but they were made to work for it.