Chris Froome lost more time to his rivals at the Volta a Catalunya as Tejay van Garderen climbed to victory on stage four and Joaquim Rodriguez retained the overall lead.
Van Garderen pulled clear of the race favourites in the final 500m of a mist-enshrouded ascent to the summit finish at Vallter 2000 and narrowly beat France’s Romain Bardet to the line, with Alberto Contador following three seconds later in third.
Rodriguez was a second further back in fourth, meaning the Spaniard's lead over compatriot Contador in the general classification is cut to four seconds with three stages remaining.
For the second day in succession, Team Sky rider Froome was unable to follow the stage-winning attack and eventually finished eight seconds behind Van Garderen in seventh, which sees him fall to sixth overall, 17 seconds down on Rodriguez.
Tight at the top
With the gaps between the leaders still just a handful of seconds, the race now appears set to be decided on what promises to be a thrilling final stage in Barcelona on Sunday.
Van Garderen said afterwards: "I let the other guys do a couple little attacks first so they could kind of wear each other out. I think I got a little lucky and I think the cold might have helped me a little bit. I think I can cope with it a bit better than some of those guys who are 60kg.
"This is my first WorldTour victory and to be up there against all the names like Contador, Froome and Purito [Joaquim Rodriguez] – Grand Tour winners – is a huge honor."
Stage four ended with a second consecutive summit finish, but the climb to the ski station of Vallter 2000 was hampered by thick fog that reduced visibility to just metres.
Thomas de Gendt (Omega Pharma – Quick-Step) led solo heading on to the 12km climb having earlier formed part of the day’s breakaway and then dropped his fellow escapees, but he was later rejoined by fellow breakaway rider Ruben Plaza (Movistar) and Jose Serpa (Lampre-Merida), who had attacked out of the peloton.
The trio briefly held a lead of over a minute, but when Pierre Rolland (Europcar) and Warren Barguil (Giant-Shimano) attacked from the main pack, the advantage began to tumble and all of the leaders came back together as one 4km out.
As he had 24 hours earlier, Froome tested his rivals’ legs with an attack 1.5km out but was unable to pull away, before Contador (Tinkoff-Saxo) also tried and failed to escape with his own move inside the final 1km.
Van Garderen (BMC) timed his attack better and his reward for keeping it going all the way to the line was the biggest win of his career and a promotion up to third overall.
Stage four result
1 Tejay van Garderen (USA) BMC, 4:49:30
2 Romain Bardet (Fra_ Ag2r-La Mondiale, same time
3 Alberto Contador (Spa) Tinkoff-Saxo, +3secs
4 Joaquim Rodriguez (Spa) Katusha, +4
5 Nairo Quintana (Col) Movistar, +5
6 Andrew Talansky (USA) Garmin-Sharp, +8
7 Chris Froome (GB) Team Sky, st
8 Warren Barguil (Fra) Giant-Shimano, +15
9 Domenico Pozzovivo (Ita) Ag2r-La Mondiale, +16
10 Robert Kiserlovski (Cro) Trek Factory Racing, +16
1 Joaquim Rodriguez (Spa) Katusha, 17:47:34
2 Alberto Contador (Spa) Tinkoff-Saxo, +4secs
3 Tejay van Garderen (USA) BMC, +7
4 Romain Bardet (Fra_ Ag2r-La Mondiale, +10
5 Nairo Quintana (Col) Movistar, same time
6 Chris Froome (GB) Team Sky, +17
7 Andrew Talansky (USA) Garmin-Sharp, +18
8 Domenico Pozzovivo (Ita) Ag2r-La Mondiale, +26
9 Warren Barguil (Fra) Giant-Shimano, +42
10 David Arroyo (Spa) Caja Rural-Seguros RGA