Ewan's team-mate Esteban Chaves lost nine seconds and slipped to 11th on the overall standings.
But the day was Greipel's, finishing off an impressive lead out from team-mate Jurgen Roelandts and beating home Giacomo Nizzolo (Trek-Segafredo) and Sacha Modolo (Lampre-Merida).
After working hard to rejoin the peloton once gapped on both climbs, Marcel Kittel (Etixx-QuickStep) punctured in the final five kilometres and failed to contest the sprint.
Greipel was grateful for Lotto Soudal ably guiding him through the tricky finish.
"We knew it was going to be quite hectic and nervous. Jurgen Roelandts did an amazing job to keep me up in front and I was just looking for a wheel I could follow then I could find a gap to get through," Greipel said.
“Three stage wins are more than we expected. We have already won three stages out of seven. It’s impressive for us. We are just trying to enjoy the moment," he added, at a press conference after the stage.
"I always try to do my best. I have a good background for my team-mates to set me up before the sprints. Hard work is the key to success. "I’m glad I’ve managed to remain competitive since I started winning at Grand Tours in 2008.” - Andre Greipel.

Australia's Jay McCarthy (Tinkoff) made the early breakaway (Getty) Source: Getty Images
The escapees were caught after cresting the first climb and then the peloton exploded.
A 55-rider lead group containing the overall contenders opened up a gap of around three minutes to a bunch containing the major sprint players.
Kung launched an attack but was soon joined by Axel Domont (Ag2r), Giolui Ciccone (Bardiani-CSF), Stefan Denifl (IAM), Ilya Koshevoy (Lampre-Merida) and Daniel Martinez (Wilier-Triestina-Southeast).
This break stayed out until Kung launched another solo attack on the descent of the Valico della Somma, holding a 44 second lead with 23 kilometres to race.
Kung was caught with seven kilometres to go by a peloton organising itself for the sprint.
The catch! Chapeau Stefan Kung, over 40kms solo #Giro #sbscycling https://t.co/gDxOySVKoo — CyclingCentral (@CyclingCentral) May 13, 2016
Javier Moreno (Movistar) abandoned the race after a nasty crash with 80 kilometres to go but was conscious and moving when loaded into the ambulance.
Tom Dumoulin remains in pink ahead of the 186km Stage 8 from Foligno to Arezzo, which features 6.4 kilometres of dirt roads on the final climb of the day, the Alpe di Poti.
“Tomorrow I don’t think the weather conditions will make a huge difference," said Dumoulin. "We might look dirtier if it rains. We only climb on the gravel road, we don't descend, so I’m not worried."
With a 26 second lead over second overall, Jacob Fuglsang (Astana) the press continue to ask Dumoulin whether he is, and has, prepared to defend his grip on the general classification.
"In terms of my preparation for the Giro, it has been different from my team-mates, he said. "It is actually about home time. I don’t want to be the cyclist being away from home the whole year.
"Like, I will be going to altitude training camp after the Giro for (the) Rio (Olympics), I wasn’t planning on going before the Giro d’Italia. This decision was made with the idea that I would not be going for GC here, so it would not be necessary. Now my shape turns out to be pretty good and we will take it day by day.”