Alexander Kristoff (UAE Team Emirates) won the final stage of the 105th edition, taking victory in a sprint finish ahead of John Degenkolb (Trek-Segafredo) and Arnaud Démare (Groupama-FDJ).
The sprint finish had been set up in the final lap of eight circuits around the Champs-Élysées, after late solo breaker Yves Lampaert (Quick-Step Floors) was caught just 200m from the finish line.
Degenkolb was the first of the sprinters to go after a fine lead-out by his Trek team-mates, but he faced a battle with Démare accelerating next to him on the right hand side and Kristoff jumping off his wheel and passing him on the left.
In the end it was the Norwegian that was able to hold his power to the line to take a famous victory after struggling to beat the other sprinters during this Tour.
Green jersey Peter Sagan (Bora-Hansgrohe) was unable to feature in the sprint, starting too far back behind the riders in front and only able to take eighth place.
Race leader Thomas rolled across the line just behind them, alongside four-time winner and team-mate Chris Froome, to confirm a stunning overall victory.
How it happened
After a gruelling three weeks of racing, the riders of the 105th Tour de France faced one more stage on the final road from Houilles to the Champs-Élysées in Paris on stage 21.
As is tradition, the race rode as a procession for the first part of the 116km distance, with no attacks until the riders reached Paris.
After the sipping of champagne by yellow jersey Geraint Thomas and posing for photos, veteran French rider Sylvain Chavanel, in his 18th Tour de France appearance, was given the honour of riding into Paris in front of the peloton.
Behind, Team Sky led the peloton on to the Champs-Élysées, with the racing then beginning as they crossed the finish line for the first time with 54.6km to go.
The first of eight laps saw a breakaway establish, with Taylor Phinney (EF Education First-Drapac), Michael Schär (BMC), Silvan Dillier (Ag2r La Mondiale), Nils Politt (Katusha-Alpecin), Guillaume Van Keirsbluck (Wanty Groupe Gobert) and Damien Guadin (Direct Energie) getting out front.
They were only able to establish a maximum gap of 47 seconds as Bora-Hansgrohe and Groupama-FDJ worked hard on the front to set things up for their respective sprinters Peter Sagan and Arnaud Démare.
It remained the same for some time, but the break’s gap was cut significantly as they came through the line with two laps to go, with Cofidis working on the front of the peloton to bring it down to just 17 seconds.
By the time the break had reached the Place de la Concorde for the penultimate time with around 8km to go, the peloton were looming down on them and it looked like they would certainly be caught.
Politt made a last ditch attack by himself ahead of the final lap, but the pace of the peloton was too high and he was finally caught with 5.8km to go.
The sprinters’s teams then jostled for position at the front of the bunch, as they sped towards the finish.
Marco Marcato (UAE Team Emirates) made a late dash out front with 2.3km to go, but was caught as Daniel Oss (Bora-Hansgrohe) and Yves Lampaert broke clear and made a solid effort to stay out front as a pair.
It was Lampaert who lasted the longest, and put in a worrying gap for the sprint teams who had to hurry to try and bring the Belgian champion back.
He was eventually caught with 200m to go, and it was Trek-Segafredo who made the final turn in the lead, ready to drop Degenkolb off for his sprint.
But it was Kristoff who couldn’t be matched as he powered up the left of the road, taking his third career victory at the Tour de France.
All the other classification leaders arrived safely to the finish, but the day belongs to Geraint Thomas, who takes his first Grand Tour crown with overall victory.
The Tour de France 2018 concluded with the final crossing of the line in Paris, with 145 riders completing the 3,351km over 21 stages.
Tour de France 2018, stage 21: Houilles to Paris, Champs-Élysées (116km)
1 Alexander Kristoff (Nor) UAE Team Emirates, in 2-46-36
2 John Degenkolb (Ger) Trek-Segafredo
3 Arnaud Dèmare (Fra) Groupama-FDJ
4 Edvald Boasson Hagen (Nor) Dimension Data
5 Christophe Laporte (Fra) Cofidis
6 Max Richeze (Arg) Quick-Step Floors
7 Sonny Colbrelli (Ita) Bahrain-Merida
8 Peter Sagan (Svk) Bora-Hansgrohe
9 Andrea Pasqualon (Ita) Wanty-Groupe Gobert
10 Jasper De Buyst (Bel) Lotto-Soudal, all same time
Final general classification
1 Geraint Thomas (GBr) Team Sky, in 83-17-13
2 Tom Dumoulin (Ned) Team Sunweb, at 1-51
3 Chris Froome (GBr) Team Sky, at 2-54
4 Primož Roglič (Slo) LottoNL-Jumbo, at 3-22
5 Steven Kruijswijk (Ned) LottoNL-Jumbo, at 6-08
6 Romain Bardet (Fra) Ag2r La Mondiale, at 6-57
7 Mikel Landa (Esp) Movistar Team, at 7-37
8 Daniel Martin (Irl) UAE Team Emirates, at 9-05
9 Ilnur Zakarin (Rus) Katusha-Alpecin, at 12-37
10 Nairo Quintana (Col) Movistar Team, at 14-18
Final points classification
1 Peter Sagan (Svk) Bora-Hansgrohe, 477 pts
2 Alexander Kristoff (Nor) UAE Team Emirates, 246 pts
3 Arnaud Dèmare (Fra) Groupama-FDJ, 203 pts
Final climber classification
1 Julian Alaphilippe (Fra) Quick-Step Floors, 170 pts
2 Warren Barguil (Fra) Fortuneo-Samsic, 91 pts
2 Rafal Majka (Pol) Bora-Hansgrohe, 76 pts
Final youth classification
1 Pierre Latour (Fra) Ag2r La Mondiale, in 83-39-26
2 Egan Bernal (Col) Team Sky, at 5-39
3 Guillaume Martin (Fra) Wanty-Groupe Gobert, at 22-05
Final team classification
1 Movistar Team (Esp), in 250-24-53
2 Bahrain-Merida (Bah), at 12-33
3 Team Sky (GBr), at 31-14
Super combative prize
Dan Martin (Irl) UAE Team Emirates