The trio broke away with sixteen kilometres left. Come the finishing stretch, Degenkolb was the first to make a move in what could have been a suicidal lead out if either of his companions had been able to swing past him.
In the end, neither could - leaving the Trek-Segafredo man the opportunity to collect the spoils ahead of Van Avermaet in second and Lampaert third.
The 156km stage from Arras to Roubaix included 12 of the cobbled sectors which featured in this year's Paris-Roubaix, plus three bonus stretches of pavé, and provided a huge challenge for the general classification contenders.
The biggest GC casualty was Richie Porte (opens in new tab) (BMC), who crashed in the first 10km of the race, abandoning with a suspected broken collarbone.
The GC rider to lose the most time was Rigoberto Uran (opens in new tab) (EF Education First-Drapac), who crossed the line 1 minute 58 down on Degenkolb, and around 1-30 down on his key rivals.
It was a tough day out for Romain Bardet (opens in new tab) (Ag2r La Mondiale), too, who was forced to close gaps well over a minute on multiple occasions following mechanicals.
Both Mikel Landa (opens in new tab) (Movistar) and Chris Froome (opens in new tab) (Team Sky) crashed during the stage. Landa was forced to chase, though just about made contact with the likes of Froome, Nairo Quintana (opens in new tab) (Movistar) and Tom Dumoulin (opens in new tab) (Team Sunweb) before the line.
How it happened
The cobbles of stage nine were always expected to cause ripples in the GC, and the first key abandonment came with just 10km of racing down.
Richie Porte (BMC Racing) who had entered the stage in tenth overall crashed early on, leaving the race with a suspected broken collarbone.
Movistar domestique José Joaquín Rojas also abandoned, and Andre Greipel (Lotto Soudal) came down, but was able to chase back on.
The incident in the peloton meant that a group of five escapees built up a lead of two minutes. The break consisted of Thomas De Gendt (Lotto-Soudal), Antwan Tolhoek (LottoNL-Jumbo), Jerome Cousin (Direct Energie), Damien Gaudin (Direct Energie) and Omar Fraile (Astana).
They were soon joined by the bridging efforts of Reinardt Janse van Rensburg, (Team Dimension Data), Lilian Calmejane (Direct Energie), Chad Haga (Sunweb), Olivier le Gac (Groupama – FDJ) and Nicolas Edet (Cofidis, Solutions Crédits).
Approaching the first sector, Tolhoek punctured, ending his time with the breakaway.
Back in the peloton, a puncture for Romain Bardet (AG2R La Mondiale) saw him take a wheel from team mate Alexis Vuillermoz; he was left with a one-minute deficit to fill on the peloton, though he was able to make up the time by the next sector.
Come sector 13, with 87 kilometres left, the break had a 3-40 gap to the peloton.
With 66km to go, a pile up in the peloton split the bunch. Soon after, Team Sky came to the front and pushed the pace - with Chris Froome and Geraint Thomas (Team Sky) plus Nairo Quintana (Movistar), Tom Dumoulin (Sunweb) and yellow jersey Greg van Avermaet (BMC) safely nestled in, as well as 2018 Paris Roubaix winner Peter Sagan (Bora-Hansgrohe).
Behind the train of Team Sky and its stowaways, a second bunch containing Vincenzo Nibali (Bahrain-Merida), Rigoberto Uran (EF Education First-Drapac) and Adam Yates (Mitchelton-Scott) was 20s in arrears.
A full minute back was BMC's nominated leader behind Porte – Tejay van Garderen, who collided with Sonny Colbrelli (Bahrain Merida) and picked up a flat tyre not long after.
The pace of the select group at the front of the peloton meant that the gap to the escapees began to sink - with 51km to go, the time distance had dropped to 1-37. Then Bardet suffered another mechanical issue that left him with another gap to close, this time around 40s.
At the end of the longest cobbled sector, at 49km to go, Van Avermaet attacked, stringing out the bunch, and with 45km left Froome found himself on the floor before jumping back up to continue the fight. By this point, there was just 58s to the break.
Philippe Gilbert (Quick Step Floors) was next to put in a dig, though Sagan and Alejandro Valverde (Movistar) were on his wheel immediately, closing down the attack.
In the bunch, Michal Kwiatkowsi (Team Sky) came down on sector six, whilst Froome sat a safe second wheel behind Jakob Fugslang (Astana).
Not long after, Mikel Landa (Movistar) was down, leaving him chasing over a minute and Rigoberto Uran (EF Education First-Drapac) also had a spill.
Up front, the break had blown itself apart, reduced to just two riders – Gaudin and Van Rensburg – with a slimmed down lead of 25s with only 25km left, and come the 20km to go mark they'd been absorbed.
The stage-winning move came with 16km left, when Lampaert attacked, taking with him Degenkolb and Van Avermaet. Sagan missed the moment and attempted to chase solo, before limping back to the peloton.
With 10km to go, the trio had 34s, accelerating to 51s with 5km to go.
Behind, the GC leaders still in the lead bunch - such as Froome, Landa (who had made it back), Dumoulin and Quintana began to attack each other whilst Bardet and Uran were still adrift. The drop in pace meant that Bardet was eventually able to make it back, though the same could not be said for Uran.
Coming into the finish straight, Degenkolb was the first to go - reaching the line first with Van Avermaet in second and Lampaert third.
Tour de France stage nine: Arras to Roubaix (156km)
1 John Degenkolb (Ger) Trek-Segafredo in 3-24-26
2 Greg Van Avermaet (Bel) BMC Racing Team
3 Yves Lampaert (Bel) Quick-Step Floors
4 Philippe Gilbert (Bel) Quick-Step Floors at 19s
5 Peter Sagan (Svk) Bora-Hansgrohe
6 Jasper Stuyven (Bel) Trek-Segafredo
7 Bob Jungels (Lux) Quick-Step Floors, at same time
8 André Greipel (Ger) Lotto Soudal at 27s
9 Edvald Boasson Hagen (Nor) Dimension Data
10 Timothy Dupont (Bel) Wanty-Groupe Gobert, at same time
General Classification after stage nine
1 Greg Van Avermaet (Bel) BMC Racing Team in 36-07-17
2 Geraint Thomas (GBr) Team Sky at 43s
3 Philippe Gilbert (Bel) Quick-Step Floors at 44s
4 Bob Jungels (Lux) Quick-Step Floors at 50s
5 Alejandro Valverde (Spa) Movistar Team at 1-31
6 Rafal Majka (Pol) Bora-Hansgrohe at 1-32
7 Jakob Fuglsang (Den) Astana Pro Team at 1-33
8 Chris Froome (GBr) Team Sky at 1-42
9 Adam Yates (GBr) Mitchelton-Scott at 1-42
10 Mikel Landa (Spa) Movistar Team at 1-42
Thank you for reading 5 articles this month* Join now for unlimited access
Enjoy your first month for just £1 / $1 / €1
*Read 5 free articles per month without a subscription
Join now for unlimited access
Try first month for just £1 / $1 / €1
Cycling Weekly's Digital Editor Michelle Arthurs-Brennan is a traditional journalist by trade, having begun her career working for a local newspaper before spending a few years at Evans Cycles, then combining the two with a career in cycling journalism.
When not typing or testing, Michelle is a road racer who also enjoys track riding and the occasional time trial, though dabbles in off-road riding too (either on a mountain bike, or a 'gravel bike'). She is passionate about supporting grassroots women's racing and founded the women's road race team 1904rt.
Favourite bikes include a custom carbon Werking road bike as well as the Specialized Tarmac SL6.
Tech of the Month July: Shimano 105 12-speed Di2 and bikes of the Tour de France
We ask if 105 is still the groupset of the people and take a look at the bikes – released and unreleased – that look set to be ridden at the tour
By Stefan Abram • Published
Fabio Jakobsen 'fairytale' keeps Quick-Step Alpha Vinyl flying high at Tour de France
Yves Lampaert might have lost the yellow jersey, but two wins in two days mean an almost-perfect Grand Départ
By Adam Becket • Published
John Degenkolb says he didn't leave Trek-Segafredo because of Tour de France omission
Lotto-Soudal will be bolstered by the arrivial of not just the German, but also Philippe Gilbert
By Jonny Long • Published
John Degenkolb signs with Lotto-Soudal as they continue to improve Classics line-up
John Degenkolb will be joining Lotto-Soudal next season as they continue to add talent to their Classics line-up.
By Alex Ballinger • Published
John Degenkolb: It doesn't matter if Marcel Kittel returns to cycling, he just needs to enjoy what he does
Degenkolb says he is giving any support he can to his compatriot
By Sophie Smith • Published
‘It was the most emotional victory of my career’: John Degenkolb reflects on Tour de France Roubaix stage win
John Degenkolb said his Roubaix stage win at the Tour de France was “was the most emotional victory of his career.”
By Alex Ballinger • Published
Five talking points from stage nine of the Tour de France
Analysis from a thrilling ninth day as the Tour raced along the famous cobbles to Roubaix
By Stephen Puddicombe • Published
John Degenkolb out of Paris-Nice suffering with bronchitis
German rider John Degenkolb's Classics preparations disrupted by bronchitis, as he abandons Paris-Nice
By Nigel Wynn • Published
John Degenkolb says spat with Michael Matthews is a 'cleared up situation'
John Degenkolb and Michael Matthews had an altercation at the end of stage 16 of the Tour de France
By Chris Marshall-Bell • Published
Michael Matthews unhappy after being 'grabbed' by John Degenkolb in post-race spat (video)
Michael Matthews has registered his discontent after a spat with Tour de France stage 16 runner up John Degenkolb after the finish in Romans-sur-Isère.
By Gregor Brown • Published