The 2019 road season was one of the most drama-packed years in recent memory, with plenty of surprises with unexpected performances, crazy weather, shocking disqualifications and the sport's top stars battling injuries. Cyclingnews picked the 12 most dramatic moments of the year from a long list of plot twists and turns.

12. Mark Cavendish left off the Tour de France team

A pensive Mark Cavendish (Dimension Data) (Image credit: Getty Images)

Dimension Data stunned the cycling world when it announced its Tour de France team, with its star rider Mark Cavendish a huge omission from the line-up. The Manxman was crucial to the team making it into the WorldTour in 2016 and he raised the team's stature with four stage wins in that year's Tour including the opening stage, giving the team a day in the maillot jaune.

Granted, his struggles with the Epstein-Barr virus and a horrific crash in Milan-San Remo hampered his performances in recent years, and he failed to make the time cut in the Alps on the 2018 Tour, but there was every indication that Cavendish's health was better and his form steadily improving in the early part of 2019, and he was medically cleared of the virus in May.

The exclusion of Cavendish opened the cracks in Dimension Data's management team, with principal Doug Ryder overruling the team's performance head Rolf Aldag in the decision.

Near the end of the season, the team announced Aldag's departure, and there was speculation the snub could be the end of Cavendish's career, but Bahrain-Merida saw an opportunity to try to revive his former glory. For 2020, Cavendish has reunited with British coach Rod Ellingworth, who helped mastermind his world championship victory in 2011.

Mark Cavendish: I don't remember what it's like to feel normal anymore

Philippa York: Analysing Mark Cavendish's Tour de Yorkshire sprints

Mark Cavendish clears Epstein-Barr threshold for first time in two years

Mark Cavendish not selected for Tour de France

Mark Cavendish left 'heartbroken' after missing Tour de France selection

Tour de France podcast: Cavendish controversy, Pinot, Woods and Sunweb’s Dumoulin dilemma

Cummings: Leaving Cavendish out of Tour de France was a big call

11. Movistar's Vuelta a España crosswind assault

The peloton chasing a large leading group in the crosswinds on stage 17 of the Vuelta a Espana (Image credit: Justin Setterfield/Getty Images)

With the Vuelta a España's GC firmly in the hands of Primoz Roglic and nothing left to lose, Movistar waged an unlikely crosswind attack on a blustery stage 17 to Guadalajara that stunned the entire peloton.

From kilometre zero it was game on, with Roglic and second-placed Alejandro Valverde unable to match the might of Deceuninck-Quickstep and Team Ineos who were hot to go for a stage win.

It was perhaps a surprise to see Nairo Quintana make the front split, given how he struggled with a similar scenario on the opening road stage of the 2015 Tour de France, but the Colombian's positioning was on point when Imanol Erviti, Nelson Oliveira and Jose Rojas teamed up with big men like Ian Stannard (Ineos), Casper Pedersen (Sunweb) and Tim Declercq (Deceuninck-Quickstep) to carve out a five-minute lead on the race leader.

The stage ended up being the third fastest in the race's history, with Philippe Gilbert attacking to give Deceuninck-Quickstep victory on the day while Quintana moved up to second overall. Behind, Movistar's other riders shredded the Roglic group, making it a day to forget for Jumbo-Visma, who were fortunate that it did not cost him his overall lead.

Vuelta a España: Crosswind stage 17 'unlike any other'

'We did a team time trial of 220km' says Vuelta a España stage winner Gilbert

Roglic rues 'mistake' as Jumbo-Visma forced onto back foot in Vuelta a España crosswinds

Echelons put Quintana back in GC game at Vuelta a España

Vuelta a España: Gilbert wins stage 17

10. Julian Alaphilippe's run in Tour de France maillot jaune

Julian Alaphilippe in the maillot jaune in the 2019 Tour de France (Image credit: Bettini Photo)

When Julian Alaphilippe won the Tour stage to Épernay with a 15-kilometre solo attack to claim the maillot jaune, it was no big surprise. The Deceuninck-Quickstep rider was ranked number 1 in the world after winning Milan-San Remo and La Flèche Wallonne. At most, the Frenchman expected to hold the jersey until the first high mountain stage to La Planche des Belles Filles three days later. And he was right, somewhat. He lost the jersey there to early attacker Guilio Ciccone (Trek-Segafredo), but only by six seconds, and he lost no time to the major race contenders like defending champion Geraint Thomas (Ineos).

Alaphilippe duly reclaimed the jersey with a vicious acceleration on the Jaillère on stage 8 to claim a five-second bonus, and he then combined with compatriot Thibaut Pinot (Groupama-FDJ) to steal another 20 seconds on Ciccone.

Not only did he keep the yellow jersey through the Pyrenees, but he also went on to win the time trial in Pau and then survive the Col d'Izoard and Col du Galibier to remain in the race lead on stage 18 thanks in large part to his superb descending abilities.

Although he lost the jersey and faded to fifth overall in the last two mountain stages, Alaphilippe's spectacular run in yellow gave his teammates and country plenty to be proud of.

No regrets: Alaphilippe slips off podium but takes pride in wild Tour de France

Alaphilippe loses Tour de France lead in unexpected way

Tour de France: Van Aert's dreams of wearing yellow stymied by Alaphilippe

Tour de France: 'He races on emotion' says Lefevere of Alaphilippe

No limits on Alaphilippe at the Tour de France

9. Marcel Kittel retires

Marcel Kittel was working for German television in July 2019 at the Tour de France before announcing his retirement from professional cycling the following month (Image credit: Bettini Photo)

After 14 career Tour de France victories and 89 wins altogether, Marcel Kittel called an abrupt end to his cycling career at the relatively young age of 31 after a season of fits and starts. "Pain defines the sport, the world in which you live. I have lost all motivation to continue to torture myself on the bike," Kittel said in an interview with Der Spiegel. He shrugged off two seasons of struggle and pressure with Katusha-Alepcin and terminated his contract.

It was a surprising end to a difficult year for Kittel, who came out with a victory in the Trofeo Palma and second place in the Clasica de Almeria in February and had interest from Jumbo-Visma for a 2020 contract.

Kittel vanished from the peloton after an anonymous 99th place finish in Scheldeprijs, a race he won five times between 2012 and 2017.

Belgian commentator and former pro Jurgen Van den Broeck said he heard Kittel was not "busy with his profession", claims Kittel's agent vehemently quashed. His former team manager Patrick Lefevere suggested he was "mentally fragile".

After announcing his retirement, Kittel admitted he lacked the motivation to continue and just wanted to enjoy other aspects of life aside from cycling.

"The biggest question of the last few months was: Can I and do I want to continue to make the sacrifices needed to be a world-class athlete? And my answer is: No, I do not want that any more, because I have always found the limitations on a top athlete as an increasing loss of quality of life.

"That is why I have a very happy and proud that at this point in my life I can make the decision to follow my heart in a new direction."

Kittel: It's just a very difficult period

Kittel's poor form 'makes no sense', says Demol

Kittel pulls out of Tour de Yorkshire due to health issues

Kittel withdraws from Tour of California

Marcel Kittel and Katusha-Alpecin terminate contract

Marcel Kittel retires from professional cycling

Lefevere: Kittel is still the fastest in the world – I can't believe he's done

Marcel Kittel offered path back to cycling by Jumbo-Visma

Marcel Kittel: Now I'm free

8. Wout van Aert's Tour de France crash

The entry of former cyclo-cross World Champion Wout van Aert to the WorldTour with Jumbo-Visma was a cause for celebration in Belgium. The 25-year-old's 2018 campaign was enough to tip him as Belgium's next big hope for the one-day Classics: a third place in Strade Bianche, ninth in the Tour of Flanders and 13th in Paris-Roubaix had all signs pointing to a huge future.

There was some cause for concern when Van Aert struggled over much of the cyclo-cross season, but he turned to the road and landed on the podium again in Strade Bianche and the E3 BinckBank Classic and was sixth in Milan-San Remo.

Back-to-back stage wins in the Critérium du Dauphiné and the Belgian time trial title earned him a berth in Jumbo-Visma's Tour de France team, and a stint in the best young rider's jersey put him on the world's biggest stage.

The hype around Van Aert was ratcheted up when he claimed a thoroughly impressive sprint victory on stage 10 to Albi ahead of top sprinters like Elia Viviani, Caleb Ewan, Michael Matthews and Peter Sagan.

It was also why the cameras were closely following Van Aert as he chased the victory in the Pau time trial and why they captured his devastating crash in a turn near the final kilometre.

Van Aert caught his right thigh on a sharp edge of the metal barricades that lined the course, ripping a huge gash through his skin, capsule and muscles. He spent weeks in the hospital, endured two surgeries and is only now getting back to full training.

Wout van Aert to return to cyclo-cross on December 27 after muscle damage in Tour de France crash

Van Aert continuing to take return from injury step-by-step

Van Aert considering legal action against ASO after Tour de France crash

Wout van Aert released from hospital after Tour de France time trial crash

Tour de France: Van Aert crashes out of time trial

7. Annemiek van Vleuten's insane solo attacks

Thermo-nuclear performance today by Annemiek van Vleuten in Giro Rosa! 🚀 She attacked on the very first meters of the Torri di Fraele climb, for 1 min 20 sec out of the saddle. After climbing at ~5,7 w/kg for 24 min 45 sec, she won by...3 minutes! 😱👏 #GiroRosa pic.twitter.com/FVYYWgybHDJuly 9, 2019

Annemiek van Vleuten's attack in the Giro Rosa at the start of the Torri di Fraele on stage 5 was so hard, so sustained, and so otherworldly that her fellow competitor Elisa Longo Borghini commented: "I witnessed it… I saw when Annemiek went, and everybody was like 'OK, the alien is gone and now the race for human beings begins.'"

Van Vleuten's sheer dominance resulted in a stage win by almost three minutes, gained over 10km on the climb. It preceded her crushing victory in the next days individual time trial where she won by 52 seconds over compatriot Anna van der Breggen. Her overall lead already over the four minute mark, so it was no big deal when she gave up 17 seconds to Van der Breggen on the stage 9 summit finish on Malga Montasio.

Her final margin of victory was 3:45, and her dominance presaged her incredible 100km solo attack to win the world championships in Yorkshire.

Worlds: Van Vleuten makes the impossible possible with 'crazy' 100km solo break

Van Vleuten claims world championship with audacious 100km solo attack

Van Vleuten turns GC upside down at Giro Rosa

Longo Borghini calls Van Vleuten's Passo Fraele attack 'alien'

Giro Rosa: Annemiek van Vleuten wins queen stage on Passo Fraele

6. Landslides truncate the Tour de France as Pinot drops out

After Julian Alaphilippe's 14 days in the race lead at the Tour de France, stage 19 - the first of two high mountain stages in the Alps - was seen as the place where the other contenders could finally stick the knife in and give it a turn. With the mid-stage Col d'Iseran and final climb of the Monteé de Tignes it was the first opportunity to unseat the Frenchman who doggedly chased back on over the Col du Galibier the day before.

With a shorter stage to Val Thorens before the final parade into Paris, it was do or die for the likes of teammates Egan Bernal and defending champion Geraint Thomas, Steven Kruijswijk and Thibaut Pinot - all of whom were within two minutes of Alaphilippe.

Bernal had already attacked and opened up a gap on the Iseran when news came over the radio that a thunderstorm in the valley ahead had dumped centimetres of hail on the road and so much rain that the mountain was washing across the road in a dangerous landslide captured on film by some intrepid television cameramen.

Confusion, disbelief, anger and then a grave acceptance rippled through the peloton as race organisers took the controversial decision to stop the stage atop the Iseran, award Bernal the GC lead and award no stage results. The following day's course was also impacted by the storm and shortened from 130km to 58.5km.

In all the confusion it was easy to miss the dramatic exit of Pinot from the race. The Frenchman abandoned in tears after suffering from a torn muscle in his thigh.

Alaphilippe loses Tour de France lead in unexpected way

Egan Bernal takes Tour de France lead - Video

Bernal rides through storm to take Tour de France lead

Key Tour de France stage slashed as landslide blocks Cormet Roselend

Tour de France: Bernal takes yellow on shortened stage 19

Tour de France stage 19 truncated by ice and mudslides

Brailsford: Fortune favours the brave at the Tour de France

5. Tom Dumoulin's knee troubles

Tom Dumoulin finishes stage 4 of the Giro d'Italia with blood pouring from his knee (Image credit: Getty Images Sport)

When Tom Dumoulin, winner of the 2017 edition, quit the Giro d'Italia this year after crashing on stage 4 and suffering a knee injury, it seemed like nothing more than a routine abandon. In retrospect, it marked the beginning of the end of his time with Sunweb.

The team physician Stephan Jacolino said "Medically speaking he is cleared to race" as Dumoulin tried to start stage 5 before abandoning after a kilometre.

What followed was a recovery in fits and starts, with Dumoulin racing the Dauphine but then abandoning. He underwent surgery to remove a piece of gravel from his knee but turned around midway through his trip to a pre-Tour de France altitude camp and then being ruled out of the Tour.

Rumours of a mid-contract split with Sunweb emerged before the Tour, but both the team and Dumoulin denied the speculation. But by August it was official - Dumoulin would leave Sunweb for Jumbo-Visma and hope to put a year of knee drama behind him.

Dumoulin quits the Criterium du Dauphine to avoid irritating injured knee

Dumoulin undergoes minor knee surgery

Dumoulin's Tour de France altitude camp postponed

Dumoulin not holding back in Dauphine TT despite metal splinter in knee

Transfer Mechanics: Can Sunweb rebuild after losing Tom Dumoulin?

Dumoulin on Sunweb departure: We couldn't make each other better

Tom Dumoulin signs for Jumbo-Visma

Jumbo-Visma ready to challenge Team Ineos at Tour de France after signing Tom Dumoulin

4. Mathieu van der Poel's Amstel Gold Race victory

Expectations were high for Mathieu van der Poel in his first major one-day race on home soil at the 2019 Amstel Gold Race. He'd just won De Brabantse Pijl and earlier the Dwars door Vlaanderen and GP de Denain.

When Van der Poel attacked on the Gulperberg with 43km to go and was then caught and countered by the powerful duo Julian Alaphilippe and Jakob Fuglsang, it seemed as if he'd made an unredeemable tactical error.

As they approached the Cauberg with 19km to go, the race ticker showed a 50-second gap for the lead pair. A headwind on the Bemelerberg and an attack by Fuglsang slashed the gap to two chasers: Matteo Trentin and Michal Kwiatkowski, but Van der Poel's group was still well behind.

The Dutch champion poured on the power and swept up a group of chasers largely off-camera, with few watching knowing that he'd reeled in group 3 - Bauke Mollema and Simon Clarke - and roared like a bullet train over the next two kilometres.

Trentin was the next to succumb to the lanky grandson of Raymond Poulidor with 1.4km to go, with the ticker still showing the leaders with a 21-second advantage.

Fuglsang and Alaphilippe, none the wiser, began playing a bit of cat and mouse just outside the final kilometre, the Frenchman tightening his shoe, the Dane sliding onto his rival's wheel.

Kwiatkowski was the pair's main focus at the kilometre banner, but they seemed unconcerned with the Pole and continued watching each other until as the Sky rider swept past finally sparking a sprint. But suddenly, with only 700m remaining, the cameras panned back and a group led by Van der Poel came into view.

Still, Fuglsang coasted at the back of the Kwiatkowski-led trio. Alaphilippe looked back and did a double-take when he saw the Dutch tricolour coming closer at an alarming rate. Van der Poel himself kept a close eye on Clarke et al, doing all the work before finally opening up the jets full gas with 150m to go.

With 100m to go, the Dutchman came level with Alaphilippe and Fuglsang. With 75m to go, he pulled ahead with Clarke on his wheel. With 25m to go and the line in reach, Clarke was unable to even try to come around and Van der Poel shook his head in disbelief in lieu of a victory celebration and after the line collapsed to the ground in a joyful exhilaration knowing he'd just staged one of the most dramatic coups in one-day race history.

Van der Poel revels in unlikely Amstel Gold Race victory

Mathieu Van der Poel wins Amstel Gold Race

Van der Poel courted by major teams but says 'they will have to wait'

Alaphilippe: Mathieu van der Poel is a phenomenon

Wellens amazed by Van der Poel but confident for Amstel Gold Race

3. Rohan Dennis quits the Tour de France

Riders don't just quit the Tour de France for no reason. Riders stay in the Tour after crashing, breaking bones, being sick - they do everything to stay in the Tour. In particular, favourites to win the next stage don't just climb off during the race.

Or so that's the usual narrative around the sport's biggest race, but Rohan Dennis tore up that script when, with 80 kilometres from the end of stage 12 to Bagnères-de-Bigorre he climbed off his bike, got into a team car and left without explanation to his team.

Bahrain-Merida said it would 'launch an investigation' and ultimately terminated its two-year deal with the Australian but did not make it public until after Dennis won the world championships on a bike that was clearly not his team-issue Merida.

After months of speculation, Dennis landed on his feet with a contract at Team Ineos and a fresh rainbow jersey while the rest of us are left to wonder what on earth happened on stage 12 of the Tour.

Rohan Dennis to Team Ineos: Vanity signing or long-term project?

Rohan Dennis signs for Team Ineos

Ellingworth: I wanted to keep Rohan Dennis at Bahrain-Merida

Bahrain-Merida terminate Rohan Dennis' contract with immediate effect

Rohan Dennis puts Tour de France backlash behind him to take resounding Worlds TT win

Rohan Dennis: Tour de France pull-out has been blown out of proportion

Bahrain-Merida launch investigation after Rohan Dennis quits Tour de France

2. Eekhoff disqualified after winning U23 Worlds

The @UCI_cycling has released video footage of @nilseekhoff chasing for 2:00 behind the Netherlands team car. The UCI said in a statement: "The maximum sanction provided by the article was considered appropriate due to the time spent sheltering." https://t.co/LmfTdfGKiq pic.twitter.com/W8uM7dE8MDSeptember 28, 2019

We hear all the time about riders raising their arms in victory, collecting the flowers and the prize money only to months or even years later be disqualified for doping. But it is a rare occasion where a rider raises his arms in victory and celebrates for nearly an hour before being told he's been disqualified for drafting behind the team car after a crash.

The U23 race in the UCI Road World Championships this year proved to be a devastating rollercoaster of emotion for Nils Eekhoff, who crossed first in a seven-man drag race to the line in Yorkshire. But after the race jury reviewed video footage that showed Eekhoff taking an extended high-speed draft off the Dutch team car, the jury altered the giving Samuele Battistella (Italy) the rainbow jersey.

The Dutch rider was understandably devastated, and his agent threatened legal action. The Dutch coach said the UCI wanted to make an example of Eekhoff, and Eekhoff himself appealed the decision to the CAS.

His case is still pending at the CAS so there still could be more drama to come from the U23 race at Worlds.

Eekhoff's agent threatens legal action after rider is stripped of world U23 title

Eekhoff 'devastated and mad' at World Championships disqualification

World Championships: Battistella named U23 champion as Eekhoff disqualified in road race

Dutch coach: The UCI wanted to make an example of Eekhoff

UCI releases footage of Eekhoff drafting - Video

Nils Eekhoff: I can't live in the past

1. Chris Froome's crash

“I’d like to share with people just what I’ve been through during the last few weeks.”Chris Froome: My Road to Recovery - launching tomorrow 📽️ pic.twitter.com/ytLEYRuMfOAugust 2, 2019

In 2019, Chris Froome looked to add to his Tour de France record one year after his salbutamol case monopolized the early season and fatigue from his Giro d'Italia victory left him conceding the Tour to teammate Geraint Thomas.

Although he took a slower start to the season, racing in Colombia then taking five weeks away before resuming at the Volta a Catalunya, by the time Froome reached the Criterium du Dauphine in June set to put a stamp on his status as the main contender for Ineos at the Tour in the race's 26.1km time trial.

That all came crashing down in the pre-race recon when Froome took his hands off the bars to clear his nose and a gust of wind swept his bike out from under him.

Froome hit a low wall at around 60kph and suffered a compound fracture to the femur, with almost two litres of blood pouring from his wound. He was lucky that an ambulance was parked nearby and medics worked to stabilize him at the scene of the crash before he was airlifted to hospital, where he underwent hours of surgery on his femur and a broken elbow.

Froome also had internal damage, with more fractures to his sternum, vertebra and ribs and spent 22 days in the hospital before heading home on the eve of the Tour de France.

It was a devastating blow to the Ineos team, with an ashen David Brailsford describing the crash to media, and rivals Richie Porte and Dan Martin horrified by the incident.

By the end of the year, he was, somewhat miraculously, back on the bike and in Japan for the Saitama Criterium, although he didn't race because he felt uncomfortable in the pack.

He admits there are no guarantees he can return to his former level but is still pushing to be in contention for the 2020 Tour de France.

Chris Froome set to miss Tour de France with broken leg

Dan Martin: I'm still replaying Chris Froome's Dauphine crash in my head

Chris Froome in surgery to repair fractures from Dauphine crash

Chris Froome awake but will remains in hospital under observation

Chris Froome diagnosed with additional sternum and vertebrae fractures

Chris Froome thankful for 'overwhelming support'

Chris Froome leaves hospital as Thomas and Bernal lead Team Ineos into Tour de France

Chris Froome's recovery 'well ahead of where he was hoping to be' says Brailsford

Poels: Hopefully Chris Froome can come back stronger

Chris Froome out of the Tour de France – Podcast Special

Richie Porte on Chris Froome: No one likes to see a rival hurt

Chris Froome: There's no guarantee I'll return to my former level

Bernal not fazed by sharing Tour de France leadership at Team Ineos

Chris Froome: Bernal says he will support me at 2020 Tour de France

Portal: It'll be tough for Chris Froome to return to his best