Peter Sagan showed off his uphill sprinting skills to win stage three of the Tirreno-Adriatico road race.
Former world champion Philippe Gilbert appeared to be heading for victory until Sagan surged ahead of him 25m from the line.
"I got excited when I saw this stage was in the race," Sagan said. "I wanted to do well and it went great."
Britain's Mark Cavendish surrendered overall lead of the week-long race to his team-mate Michal Kwiatowski.
Cavendish, who earned the leader's blue jersey with Omega Pharma-Quick Step in Wednesday's team time-trial and held on to it Thursday, finished 93rd on Friday's stage - 49 seconds down on Sagan.
Polish rider Kwiatkowski finished second on the stage, while Australia's Simon Clarke was third, both with the same time as Sagan.
Kwiatkowski, who won the Tour of Algarve last month, now holds a 10-second overall advantage on team-mate Rigoberto Uran ahead of Saturday's tough fourth stage.
Sagan, a Slovak who rides for Cannondale, took more than five hours on the 212-kilometre leg from Cascina to the Tuscan town of Arezzo. The stage concluded on an 11-km circuit that featured a short uphill finish, with the last 900m at a five percent gradient.
It was Sagan's second victory of the season, having won a stage in the Tour of Oman last month, and the 57th of his career - many of them on stages similar to this one with short, uphill finishes.
This victory would appear to boost his credentials for Milan-San Remo, the so-called La Classicissima one-day road race, which takes place on March 23.
"I hope so," Sagan said when asked if this latest win could play a part. "We've now entered a very important part of the season."
Stage four on Saturday is the toughest of this year's Tirreno-Adriatico, a 244-km leg from Indicatore to Cittareale Selvarotonda that features several climbs, including a long, gruelling uphill finish.
That stage will give favourites Alberto Contador and Nairo Quintana the chance to make a move on the overall lead. The race ends on Tuesday with an individual time-trial in San Benedetto del Tronto.