Arnaud Demare took his third stage win of the Giro d'Italia with relative ease as he beat Peter Sagan in a scrappy sprint in Brindisi.

Australian Michael Matthews edged out British champion Ben Swift for third place at the end of stage seven from Matera but none of them could match Demare, who raised his arms in celebration for a second day running.

The relatively flat 143km stage looked like it might offer respite on paper but crosswinds made for a day of tension and drama, reflected in an average speed of 51.6kmh as the pressure was on all day.

Ultimately there was no change in the general classification, with Deceuninck-QuickStep's Joao Almeida retaining his 48-second lead over Pello Bilbao of Bahrain-Merida in the battle for pink while Vincenzo Nibali, Steven Kruijswijk and Jakob Fuglsang remained within 90 seconds.

Others - including Britain's Simon Yates - were grateful to avoid losses after being caught on the wrong side of splits earlier in the day.

Amanuel Ghebreigzabhier is helped back to his feet after a crash

It all came back together for the final 20km to set up the bunch sprint to the finish but it was a messy affair, with no one able to find the room to challenge Demare.

The ease of his victories both here and on Thursday will fuel the continuing debate over why the French national champion was left out of the Tour de France last month, but for now he can enjoy his successes here.

"My team-mates have made the difference even more than the great confidence I have these days," the Groupama-FDJ rider said.

"I opened my sprint at a right time. I felt the presence of Peter Sagan close to me. I'm happy I made it again. It is extraordinary."

Sagan, riding in his debut Giro, took a familiar second place - his third of the race - as he still seeks a first win in the Italian Grand Tour.

The pace had been up from the moment the flag dropped, with a breakaway including Thomas De Gendt standing no chance as echelons began to rip through the peloton within the first 15 kilometres.

Nibali and Kruijswijk stuck with Almeida in the front group but Fuglsang found himself in the second group on the road and Yates was part of a third group on the road, almost a minute down at one point despite the best efforts of his Mitchelton-Scott team.

The race came back together again with 75km to go but Fuglsang was then held up by a small crash, and the drama continued when a bigger spill - seemingly caused by poor barrier placement at the 45km-to-go marker - split the pack once again.