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 (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 (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 (Ag2r La Mondiale), too, who was forced to close gaps well over a minute on multiple occasions following mechanicals.
Both Mikel Landa (Movistar) and Chris Froome (Team Sky) crashed during the stage. Landa was forced to chase, though just about made contact with the likes of Froome, Nairo Quintana (Movistar) and Tom Dumoulin (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
Michelle Arthurs-Brennan is Cycling Weekly's Tech Editor, and is responsible for managing the tech news and reviews both on the website and in Cycling Weekly magazine.
A traditional journalist by trade, Arthurs-Brennan began her career working for a local newspaper, before spending a few years at Evans Cycles, then combining writing and her love of bicycles first at Total Women's Cycling and then Cycling Weekly.
When not typing up reviews, news, and interviews Arthurs-Brennan 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 190rt.
She rides bikes of all kinds, but favourites include a custom carbon Werking road bike as well as the Specialized Tarmac SL6.
Five talking points from the elite men's time trial at the 2021 World Championships
Ganna proves doubters wrong and breaks Belgian hearts as Küng misses out on global domination
By Chris Marshall-Bell •
World Championships time trial LIVE: Updates as Filippo Ganna wins elite men's TT for second year
Live updates as the first rainbow jersey is awarded from the 2021 Worlds
By Alex Ballinger •
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 •
‘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 •
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 •
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 •
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 •
'There's no point worrying about the time cut' - sprinters battle through the mountains
With two 146km mountain stages before Paris, the Tour de France sprinters are facing a race against time to avoid the cut
By Gregor Brown •
Giant-Alpecin develop their own marginal gains ahead of the Tour de France
Aerodynamics, safety and overnight recovery have been improved for Giant-Alpecin's riders ahead of the Tour de France
By Nick Busca •
Tom Dumoulin and John Degenkolb in Giant-Alpecin's Tour de France line-up
Warren Barguil will spearhead Giant-Alpecin's assault on the general classification of the 2016 Tour de France
By Nigel Wynn •