Alberto Contador climbed to victory on stage four of Tirreno-Adriatico but was unable to seize the overall race lead from Michal Kwiatkowski.
Contador reached the final straight on the summit finish at Cittareale Selvarotonda in a small group of elite riders and then sprinted to victory ahead of Nairo Quintana in second place and Daniel Moreno in third.
Kwiatkowski finished 10 seconds later in seventh place, which was enough to see him hang on to the leader's blue jersey by 16 seconds.
Contador is now second in the general classification, with Quintana 23 seconds adrift of Kwiatkowski in third.
Kwiatkowski said afterwards: "I didn't lose much time to Alberto, but he had a good day today, so congratulations to him.
"I'm very happy I defended the jersey. I think tomorrow is going to be the last day when the climbers can gain some time. I think everything will be close."
At 244km, stage four was the longest day in the race and a tired peloton was drastically reduced over the first big climb, the Forca Capistrello, which arrived at about two-thirds distance.
However, it was on the final climb, which began 14km from the finish and carried a maximum gradient of 10 per cent, that the stage was decided.
Stefano Pirazzi (Bardiani-CSF) was the first man to launch an attack, 9km from home, and he was quickly joined by Roman Kreuziger (Tinkoff-Saxo) and Benat Intxausti (Movistar).
Kreuziger soon dropped his fellow escapees and then opened up a lead of almost 30 seconds, but when an attack from Robert Kiserlovski (Trek Factory Racing) and Michele Scarponi (Astana) drew a response from Contador and Quintana, Kreuziger saw his days were numbered and opted to sit up and wait for team-mate Contador.
That group of five was reeled back in by a fine chase effort led by Richie Porte (Team Sky) heading into the final 1km, which effectively prompted a sprint to the finish line.
Porte tried to keep his momentum going, but Contador made light work of overtaking him and eased to a confident victory.
Stage four result
1 Alberto Contador (Spa) Tinkoff-Saxo, 6:39:56
2 Nairo Quintana (Col) Movistar, +1
3 Daniel Moreno (Spa) Katusha, +5
4 Roman Kreuziger (Cze) Tinkoff-Saxo, same time
5 Richie Porte (Aus) Team Sky, same time
6 Michele Scarponi (Ita) Astana, +8
7 Michal Kwiatkowski (Pol) Omega Pharma - Quick-Step, +10
8 Robert Kiserlovski (Cro) Trek Factory Racing, +11
9 Chris Horner (USA) Lampre-Merida, st
10 Giampaolo Caruso (Ita) Katusha, +17
1 Michal Kwiatkowski (Pol) Omega Pharma - Quick-Step, 16:06:42
2 Alberto Contador (Spa) Tinkoff-Saxo, +16secs
3 Nairo Quintana (Col) Movistar, +23
4 Richie Porte (Aus) Team Sky, +34
5 Rigoberto Uran (Col) Omega Pharma - Quick-Step, +38
6 Roman Kreuziger (Cze) Tinkoff-Saxo, +39
7 Robert Kiserlovski (Cro) Trek Factory Racing, +49
8 Moreno Moser (Ita) Cannondale, +1:01
9 Mikel Nieve (Spa) Team Sky, +1:02
10 Julian Arredondo (Col) Trek Factory Racing, +1:03