The finale on stage 21 featured 10 laps of a flat 11.5km course that included views of the Colosseum, Altare della Patria and the Piazza del Popolo. The race was neutralised for the GC as riders and teams complained that the roads were too dangerous in the finishing city. Froome finished the stage 16 minutes down just behind a group of other GC riders with their overall positions confirmed at the end of the third lap.
Sam Bennett (Bora-Hansgrohe) won the stage, his third bunch-sprint victory of this Giro d'Italia, beating points classification winner Elia Viviani (Quick-Step Floors) and Jean-Pierre Drucker (BMC).
Froome sealed the overall title by 46 seconds ahead of 2017 winner Tom Dumoulin (Sunweb), and 4:57 ahead of third-placed and best young rider Miguel Angel Lopez (Astana).
Froome, who is currently embroiled in his salbutamol case, had many ups and downs on the way to his title victory, including two crashes and a victory atop Monte Zoncolan. But just when it looked as though he was out of contention for the GC, he took a dramatic solo victory during stage 19, attacking 80km from the finish line and stealing the maglia rosa from Simon Yates (Mitchelton-Scott), who cracked on the mountainous parcours to Bardonecchia. Froome held the lead over the final two stages to win in Rome.
Watch the InCycle highlights video from stage 21 of the Giro d'Italia above.