Impey, the current South African time trial champion, rounded Dario Cataldo (Astana) and Alessandro De Marchi (BMC) in the final metres of the stage in Reus, as Alejandro Valverde (Movistar) extended his lead in the leader’s jersey.
It was Impey’s first road race win since stage five of the 2014 Tour of Alberta, but the real story was Froome’s monumental collapse.
The Sky rider, who was just 21 seconds shy of Valverde and in second place going into the day’s stage, failed to make the correct group when the peloton split after the first hour’s racing. Geraint Thomas, 14th before the stage, also sustained huge time losses.
With just one day left – a hilly circuit stage in Barcelona – two-stage winner Valverde is all but assured of overall victory, holding a 53-second advantage to compatriot Alberto Contador (Trek-Segafredo).
The race among the general classification fraternity animated early on in the 190km stage, the peloton dividing into three permanent groups with just 50km of the route having been ridden.
A leading group of 53 riders contained Valverde, Contador, Marc Soler (Movistar) and Adam Yates (Orica-Scott). But Froome and 75 other riders were distanced, and unable to mount a successful response. Sky’s difficulties worsened when Mikel Landa abandoned.
Perhaps unsurprisingly, there was no attacks as the leading group crested the day’s final climb of Alt de la Muaara as one, 28km from the finish in Reus.
A long, fast descent ensued before a flat run in, and 9km out Cataldo and De Marchi broke away as one, establishing a 10-second gap.
It looked as if the pair’s advantage would yield victory for one of them, but heartbreakingly, they were caught and passed metres from the finish line, with Impey charging from the right to take the win from Valverde and Arthur Vichot (FDJ). Froome rolled home 26 minutes later.
Volta a Catalunya 2017, stage six: Tortosa to Reus, 190km
1. Daryl Impey (RSA) Orica-Scott in 4-34-14
2. Alejandro Valverde (Esp) Movistar
3. Arthur Vichot (Fra) FDJ
4. Petr Vakoc (Cze) Quick-Step Floors
5. Alessandro De Marchi (Ita) BMC Racing
6. Nick van der Lijke (Ned) Roompot-Nederlandse Loterij
7. Dario Cataldo (Ita) Astana
8. Lennard Kämna (Ger) Team Sunweb
9. Cyril Gautier (Fra) AG2R La Mondiale
10. Dan Martin (Ire) Quick-Step Floors, all at same time
General classification after stage six
1. Alejandro Valverde (Spa) Movistar in 22-18-35
2. Alberto Contador (Spa) Trek-Segafredo at 53 secs
3. Marc Soler (Spa) Movistar at 1-06
4. Adam Yates (GBR) Orica-Scott at 1-21
5. Tejay van Garderen (USA) BMC Racing at 1-24
6. Dan Martin (Ire) Quick-Step Floors at 2-19
7. Steven Kruijswijk (Ned) LottoNL-Jumbo at 2-46
8. Carlos Verona (Esp) Orica-Scott at 2-50
9. George Bennett (NZE) LottoNL-Jumbo at 2-51
10. Romain Bardet (Fra) AG2R La Mondiale at 2-55