Britain’s Simon Yates held on to the overall lead as Ireland’s Sam Bennett won stage seven of the Giro d’Italia.
The Bora-Hansgrohe rider jumped Elia Viviani just before the line as the 159km stage from Pizzo to Praia a Mare ended in a bunch sprint.
Mitchelton-Scott’s Yates, who took the pink jersey with a 16-second lead after stage six, was among the group of riders to finish behind Bennett.
It was the 27-year-old Bennett’s first Grand Tour stage win.
Britain’s Chris Froome remains in eighth place in the general classification after his team-mate Wout Poels kept him safe in the frantic final few kilometres, one minute and 10 seconds down on his compatriot Yates, with reigning champion Tom Dumoulin in second, 16 seconds off the leader’s maglia rosa.
The Giro has been Yates’ target since the beginning of the year, and he explained it is “not a surprise to have good legs”.
With this stage always likely to be one for the sprinters he could take a relative back seat and was content to finish in the pack.
“We started the tour looking to win, nothing has changed. There are many difficult stages to come and also the time trial,” he told Eurosport.
“It’s still close. We came as a team to win, we have done great up to now and we continue as we are.”
Viviani had won the first two sprint stages on this Giro, his Quick-Step team functioning perfectly again as it has all season.
Bennett had lost out to the Italian in the finish on the second stage into Tel Aviv and changed his tactics on Friday as a result, choosing to dispense with his Bora-Hansgrohe team in the final two kilometres and sit tight on Viviani’s wheel instead.
The yellow and black jerseys of Lotto NL Jumbo tried to set their man Danny van Poppel away, but Italy’s Sacha Modolo made a move down the left and took Viviani and Bennett with him.
Viviani, in the purple jersey as leader of the points classification, came past him with 100 metres to go but Bennett for once had his measure, going around him to the right to nick the victory by half a wheel.
“The first few stages I had the power, knew what I was capable of – it’s another thing being able to do it,” said Bennett.
“The hardest thing today was to have the patience. I was glad I kept my cool and it paid off.”
He becomes the first Irishman to win a stage of the Giro since Stephen Roche in 1987, the year Roche won his famous triple of Giro, Tour de France and world road race.
The race continues on Saturday with a long 209km stage from Praia a Mare to Montevergine di Mercogliano.
Stage seven results:
1 Sam Bennett (Ire/Bora-Hansgrohe) 3hrs 45mins 27secs
2 Elia Viviani (Ita/Quick-Step) same time
3 Niccolo Bonifazio (Ita/Bahrain-Merida)
4 Sacha Modolo (Ita/EFD-Cannondale)
5 Danny van Poppel (Ned/LottoNL-Jumbo)
6 Jakub Mareczko (Ita/Southeast Pro Cycling)
7 Clement Venturini (Fra/AG2R La Mondial)
8 Mads Pedersen (Den/Trek Factory)
9 Jurgen Roelandts (Bel/BMC Racing)
10 Jens Debusschere (Bel/Lotto-Soudal)
1 Simon Yates (GB/Mitchelton-Scott) 26hrs 31mins 30secs
2 Tom Dumoulin (Ned/Team Sunweb) +16secs
3 Esteban Chaves (Col/Mitchelton-Scott) +26secs
4 Domenico Pozzovivo (Ita/Bahrain-Merida) +43secs
5 Thibaut Pinot (Fra/Groupama-FDJ) +45secs
6 Rohan Dennis (Aus/BMC Racing) +53secs
7 Pello Bilbao (Spa/Astana Pro Team) +1min 3secs
8 Chris Froome (GB/Team Sky) +1min 10secs
9 George Bennett (NZ/LottoNL-Jumbo) +1min 11secs
10 Fabio Aru (Ita/UAE Team Emirates) +1min 12secs