The Tour de France jersey winners: Peter Sagan (green), Egan Bernal (yellow and white) and Romain Bardet (polka dot)

Egan Bernal became the first Tour de France winner from Colombia with victory in the 106th edition of the race.

The 22-year-old Ineos rider won by one minute, 11 seconds from team-mate Geraint Thomas, who won the race in 2018, with Dutch rider Steven Kruikswijk in third.

Slovakia's Peter Sagan won the green points classification jersey for a record seventh time, while France's Romain Bardet claimed the King of the Mountains polka dot top.

Here's the story of the 2019 race...

Stage 1: Brussels - Brussels, 194.5km

Teunissen (bottom) wins his first Tour de France stage and will wear the yellow jersey on stage two

Winner: Michael Teunissen (Ned/Jumbo-Visma)

Report: Thomas 'fine' after crash as Teunissen takes surprise win

Defending champion Geraint Thomas says he is "unhurt" after being involved in a crash around 1.6km from the finish line. Pre-stage favourite Dylan Groenewegen goes down hard in the crash and his team-mate and lead-out man Michael Teunissen takes advantage of having a free role to pip three-time world champion Peter Sagan on the finish line.

BeSpoke podcast: Stage one - surprise winners

Stage 2: Brussels, 27.6km team time trial

Dutch team Jumbo-Visma finished the team time trial 20 seconds ahead of Ineos

Winner: Jumbo-Visma

Report: Thomas puts time into Tour rivals as Teunissen extends race lead

Geraint Thomas gains time on his rivals for the overall Tour de France victory as Team Ineos finish second on stage two's team time trial with Team Ineos. Jumbo-Visma win the stage by 20 seconds, so surprise stage one winner Mike Teunissen extends his race lead.

BeSpoke podcast: Stage two - Ineos pipped at the post

Stage 3: Binche - Epernay, 215km

Julian Alaphilippe is the first Frenchman to lead the race since Tony Gallopin in 2014

Winner: Julian Alaphilippe (Fra/Deceuninck-Quick Step)

Report: Thomas loses a handful of seconds as Alaphilippe wins stage three to lead Tour

Defending champion Geraint Thomas loses time on two of his Tour de France rivals with his Ineos co-leader Egan Bernal and France's Thibaut Pinot both taking five seconds out of him at the finish in Epernay.

France's Julian Alaphilippe rides clear to win the stage and take the yellow jersey with a superb solo attack on the final climb.

BeSpoke podcast: Stage three - Champagne Supernova

Stage 4: Reims - Nancy, 213.5km

Elia Viviani (left) is overcome with emotion after winning stage four. The Italian has previously won stages at the Giro d'Italia and the Vuelta a Espana

Winner: Elia Viviani (Ita/Deceuninck-Quick Step)

Report: Viviani takes sprint for first Tour win

BeSpoke podcast: Stage four - quiche and bunch sprints

Elia Viviani claims his first Tour de France stage win as his team-mate Julian Alaphilippe retains the yellow jersey after stage four. Defending champion Geraint Thomas steers clear of trouble to finish in the peloton, remaining seventh in the general classification, 45 seconds behind Alaphilippe.

Stage 5: Saint-Die-des-Vosges - Colmar, 175.5km

Peter Sagan, a three-time world road race champion, celebrated victory on stage five with a muscleman pose

Winner: Peter Sagan (Svk/Bora-Hansgrohe)

Report: Sagan takes first stage win of 2019 Tour

BeSpoke podcast: Stage five - superstar Sagan shines

Peter Sagan secures his first win of this year's Tour de France, and 12th in total, as he sprints to victory on stage five. Geraint Thomas stays seventh overall, 45 seconds adrift of race leader Julian Alaphilippe.

Stage 6: Mulhouse - La Planche des Belles Filles, 160.5km

Giulio Ciccone (left) was beaten by a powerful finish from Dylan Teuns but his second place saw him gain enough time to take the yellow jersey

Winner: Dylan Teuns (Bel/Bahrain-Merida)

Report: Thomas moves up as Teuns wins stage six

BeSpoke podcast: Stage six - Thomas lays down marker

Dylan Teuns won the first mountain stage of the 2019 Tour de France as Geraint Thomas attacked his general classification rivals late on to finish fourth on the day.

Stage 7: Belfort - Chalon-sur-Saone, 230km

Groenewegen won his first stage at this year's Tour with a powerful lunge for the line

Winner: Dylan Groenewegen (Ned/Bora-Hansgrohe)

Report: Groenewegen wins stage seven of Tour

BeSpoke podcast: Stage seven - The Flying Dutchman

Dylan Groenewegen claimed his first stage win of this year's Tour de France as Giulio Ciccone retained the leader's yellow jersey after stage seven.

At 230km, stage seven was the longest of this year's Tour and the relatively flat route set up a bunch sprint to the finish line in Chalon-sur-Saone, where Groenewegen beat Ewan to the line.

Stage 8: Macon - Saint-Etienne, 200km

Geraint Thomas lost time on stage eight after being involved in his second crash on the Tour

Winner: Thomas de Gendt (Bel/Lotto Soudal)

Report: Thomas survives crash as De Gendt solos to superb stage win

BeSpoke podcast:Stage eight - breakaways and broken bikes

Defending champion Geraint Thomas loses time to French duo Julian Alaphilippe and Thibaut Pinot after crashing 15km from the end of stage eight on the Tour de France. Belgium's Thomas de Gendt wins after a stage-long breakaway, with France's Alaphilippe reclaiming the yellow jersey going into Bastille Day.

Stage 9: Saint-Etienne - Brioude, 170.5km

Daryl Impey becomes the first South African to win a Tour de France stage since 2007

Winner: Daryl Impey (SA/Mitchelton Scott)

Report: Impey wins stage, Alaphilippe leads

BeSpoke podcast: Victory for Impey

South Africa's Daryl Impey wins stage nine as Julian Alaphilippe retained his overall lead. Victory is Impey's first in the race and comes as he forms part of a 15-man breakaway which finishes over 16 minutes clear of the main peloton.

Stage 10: Saint-Flour - Albi, 217.5km

Wout van Aert's first stage victory in Albi was the fourth win for Jumbo-Visma and the third for Belgian riders at the 2019 Tour de France

Winner: Wout van Aert (Bel/Jumbo-Visma)

Report: Thomas moves up to second at Le Tour

BeSpoke podcast: Thomas takes control

Defending champion Geraint Thomas moves up to second in the Tour de France as stage 10 concludes in dramatic fashion. Julian Alaphilippe remains the overall race leader as Belgian Wout van Aert wins a sprint finish against Italy's Elia Viviani.

Stage 11: Albi - Toulouse, 167km

Caleb Ewan's victory ensured 10 different winners of the opening 10 individual stages for the first time since 1996

Winner: Caleb Ewan (Aus/Lotto Soudal)

Report: Ewan edges thriller for first stage win

BeSpoke podcast: Aussie rules

Australia's Caleb Ewan wins his maiden Tour stage, edging out Dylan Groenewegen in a thrilling bunch sprint finish. Julian Alaphilippe finishes safely near the front to retain the yellow jersey while Geraint Thomas has a largely untroubled ride to remain second overall.

Stage 12: Toulouse - Bagneres-de-Bigorre, 209.5km

Simon Yates has now won six Grand Tour stages - one at the Tour, two at the Vuelta and three at the Giro

Winner: Simon Yates (GB/Mitchelton-Scott)

Report: Yates claims maiden Tour stage win

BeSpoke podcast: Simon Yates wins in the Pyrenees

After a frantic start, a 40-man breakaway finally escapes and whittles down over two major climbs before Simon Yates, Pello Bilbao and Gregor Muhlberger go clear with 32km remaining. Yates gets his tactics spot on in a technical finish to win the sprint as he claims his maiden Tour de France stage win, while Bilbao takes second. The general classification takes a day off as Julian Alaphilippe remains in yellow, with Geraint Thomas second. World time trial champion Rohan Dennis abandons the day before the individual time trial.

Stage 13: Pau, 27.2km - time trial

Julian Alaphilippe is the first rider to win two stages at the 2019 Tour following victory on stage three

Winner: Julian Alaphilippe (Fra/Deceuninck Quick-Step)

Report: Alaphilippe wins time trial to extend lead

BeSpoke podcast: Game on?

Julian Alaphilippe stuns everyone by winning a technical time trial, beating Geraint Thomas by 14 seconds to extend his overall lead on the 100th anniversary of yellow jersey's introduction before a key weekend in the mountains. The Frenchman becomes the first rider to win two stages of the 2019 Tour, while defending champion Thomas puts time into his other rivals.

Stage 14: Tarbes - Tourmalet, 117.5km

Thibaut Pinot is bidding to be the first French winner of the Tour since 1985

Winner: Thibaut Pinot (Fra/Groupama-FDJ)

Report: Pinot wins stage 14 as Thomas loses time

BeSpoke podcast: Travails for Thomas

Defending champion Geraint Thomas loses more time to Julian Alaphilippe as Thibaut Pinot wins on the Tourmalet. Britain's Thomas is dropped by the lead group with around one kilometre to go before Frenchman Alaphilippe crosses the line six seconds after compatriot Pinot. Another of Thomas' general classification rivals, Steven Kruijswijk, finishes third.

Stage 15: Limoux - Foix Prat d'Albis

Simon Yates has come back from a disappointing Giro d'Italia campaign by winning two Tour stages

Winner: Simon Yates (GB/Mitchelton-Scott)

Report: Yates wins second stage as Thomas gains time on Alaphilippe

BeSpoke podcast: Wide open

Simon Yates claims his second stage win of the Tour with a stunning solo victory, kicking away from Simon Geschke with 8.6km to go and staying clear of the chaser to the summit of the Prat d'Albis. Julian Alaphilippe retains the yellow jersey but finally cracks in the mountains and loses time to Geraint Thomas. Thibaut Pinot has another fine day to finish second on the stage and moves up to fourth overall, just 15 seconds behind Thomas.

Stage 16: Nimes - Nimes, 177km

Caleb Ewan took an impressive win despite saying he suffered in the 40C heat on stage 16

Winner: Caleb Ewan (Aus/Lotto Soudal)

Report: Ewan sprints to second stage win

Caleb Ewan becomes the first sprinter to win two stages in the 2019 Tour de France, surging from deep to beat Elia Viviani in searing heat. Geraint Thomas gets up after a crash at 130km to go and finishes safely in the bunch to remain 95 seconds behind yellow jersey Julian Alaphlippe. Jakob Fuglsang abandons after crashing with 27km remaining.

BeSpoke podcast: Thomas goes down but is not out

Stage 17: Pont du Gard - Gap, 200km

Matteo Trentin previously won stages at the Tour de France in 2013 and 2014

Winner: Matteo Trentin (Ita/Mitchelton-Scott)

Report: Alaphilippe keeps lead after breakaway win for Trentin

Italy's Matteo Trentin records his third stage win at the Tour de France as he breaks clear on the final climb of the day to win stage 17. Defending champion Geraint Thomas finishes in the peloton with race leader Julian Alaphilippe.

BeSpoke podcast: Luke Rowe disqualified

Stage 18: Embrun - Valloire, 208km

Nairo Quintana's third ever stage win at the Tour saw him climb five places in the general classification to seventh

Winner: Nairo Quintana (Col/Movistar)

Report: Thomas drops a place to third as Quintana wins stage 18

Geraint Thomas drops to third overall but stays 95 seconds behind leader Julian Alaphilippe after Nairo Quintana wins the mountainous stage 18 to Valloire. Thomas' team-mate and Ineos co-leader Egan Bernal moves into second with a late attack on the Col du Galibier.

BeSpoke podcast: A battle royale

Stage 19: Saint-Jean-De-Maurienne - Tignes, 126.5km

Geraint Thomas was sixth over the Col de l'Iseran which was scheduled to be the penultimate climb

Winner: No stage winner

Report: Bernal takes Tour lead as hailstorm stops stage 19

Egan Bernal moves into the overall Tour de France lead as hailstorm cuts short stage 19 around 20km from the finish with times taken on the Col de l'Iseran. Julian Alaphilippe drops to second, Bernal's Ineos team-mate and defending champion Geraint Thomas stays third overall and another race favourite, Thibaut Pinot, abandons early on.

BeSpoke podcast:Landslides and hail

Saturday, 27 July - Stage 20: Albertville - Val Thorens, 130km

Egan Bernal is set to become the youngest Tour winner for 110 years

Winner: Vincenzo Nibali (Ita/Bahrain-Merida)

Report: Bernal set to be youngest Tour winner in more than a century with Thomas second

Egan Bernal finishes Saturday's penultimate stage in the yellow jersey as he closes in on becoming Colombia's first winner of the Tour de France. Ineos team-mate and defending champion Geraint Thomas stays second as Julian Alaphilippe drops to fifth while Vincenzo Nibali claims a memorable win on the final Alpine stage.

BeSpoke podcast: Bernal victorious

Sunday, 28 July - Stage 21: Rambouillet - Paris Champs-Elysees, 128km

Geraint Thomas said it was "OK" to finish second behind Ineos team-mate Egan Bernal

Winner: Caleb Ewan (Aus/Lotto Soudal)

Report: Ewan wins in Paris as Bernal claims Tour victory

Egan Bernal crosses the finish line hand-in-hand with last year's winner Geraint Thomas to complete his first Grand Tour win. The 22-year-old is the youngest rider to win the title in 110 years and first Colombian. Australia's Caleb Ewan times his sprint to perfection to win on the Champs-Elysees.

BeSpoke podcast: A champagne finale