Simon Yates extended his overall lead by three seconds on defending champion Tom Dumoulin by taking bonuses from the intermediate sprint, but saw Mitchelton-Scott team-mate Esteban Chaves lose second place overall and drop out of the top 10 in a blow for his team.
Yates now leads by 41 seconds from Dutchman Dumoulin, with Thibaut Pinot of Groupama-FDJ in third at 46 seconds.
What was expected to be a quiet transition stage — over the longest distance of the entire Giro at 244km — turned into a frantic day of racing after Chaves was dropped on the category two climb which opened the day’s racing.
The race split into two as general classification and sprint teams in the peloton worked together to distance them.
With 90km left the second group gave up the chase and attention turned to the front, where Yates nipped ahead of Pinot to take the three bonus seconds from the intermediate sprint.
A series of attacks began late in the day, and as the tension increased Dumoulin was caught in a small crash.
As the attacks petered out, Slovenian Mohoric of Bahrain-Merida stayed clear alongside AG2R La Mondiale’s Nico Denz and had enough to hold off the German at the line, winning some 34 seconds ahead of the main bunch, led by Bennett of Bora-Hansgrohe.
Last week Bennett won a sprint finish to claim stage seven at Praia a Mare in Calabria, becoming the first Irish stage winner at the Giro since Stephen Roche in 1987.
Today’s stage 11 is another lumpy one, covering 156km from Assisi to Osimo.