Bodnar’s acceleration worried the peloton sufficiently for QuickStep Floors to ramp up the pace, with Philippe Gilbert pulling hard, and Lotto-Soudal and Katusha-Alpecin were also sufficiently concerned as the gap held at 40 seconds with 10km to go.
Bodnar was still clear under the 3km-to-go kite but his lead, with Direct Energie and Dimension Data also chasing, was down to just 12 seconds and he was caught just 200m from the line.
Boasson Hagen led the sprint out on the right-hand side of the road, with Matthews on his wheel, but the German found open road in the middle and charged through to claim victory once again.
It left the Dimension Data man beating his handlebars in frustration, as Kittel admitted post-stage: “I’m super-proud. I’ve got the legs, I’ve got the mind for it. It’s perfect at the moment.”
With no change in the top-ten overall, meanwhile, Froome will wear yellow on stage 12 and Simon Yates (Orica-Scott) remains in the white jersey.
Tour de France 2017: stage 11 – report
1) Marcel Kittel (GER) – QuickStep Floors – 4.34.27hrs
2) Dylan Groenewegen (NED) – LottoNL-Jumbo – ST
3) Edvald Boasson Hagen (NOR) – Dimension Data
4) Michael Matthews (AUS) – Team Sunweb
5) Dan McLay (GBR) – Fortuneo-Oscaro
6) Davide Cimolai (ITA) – FDJ
7) Andre Greipel (GER) – Lotto-Soudal
8) Nacer Bouhanni (FRA) – Cofidis
9) Ben Swift (GBR) – UAE Team Emirates
10) Danilo Wyss (SUI) – BMC Racing
1) Chris Froome (GBR) – Team Sky – 47.01.55hrs
2) Fabio Aru (ITA) – Astana +18″
3) Romain Bardet (FRA) – Ag2r-La Mondiale +51″
4) Rigoberto Uran (COL) – Cannondale-Drapac +55″
5) Jakob Fuglsang (DEN) – Astana +1.37
6) Daniel Martin (IRL) – QuickStep Floors +1.44
7) Simon Yates (GBR) – Orica-Scott +2.02
8) Nairo Quintana (COL) – Movistar +2.13
9) Mikel Landa (ESP) – Team Sky +3.06
10) George Bennett (NZL) – LottoNL-Jumbo +3.53