The 26-year-old took command of the race with a solo win on the 14th stage and never surrendered the pink jersey, comfortably holding off his main rivals in the mountains in the final week.
“This is the biggest moment of my sporting life. In this final time trial, I just suffered from start to finish until I reached the arena of Verona. It’s fabulous to win the Giro d’Italia,” Carapaz said.
Vincenzo Nibali (Bahrain-Merida), who was chasing a third title, ended up second overall, one minute and five seconds behind, with Primoz Roglic (Jumbo-Visma) taking third-place two minutes 30 seconds off the pace after the final stage time trial was won by Chad Haga (Sunweb).
Lotto Soudal riders rounded out the Stage 21 podium with world hour record holder Victor Campenaerts second and Thomas De Gendt third.
Carapaz’s Movistar team-mate, Mikel Landa, ended up fourth, missing out on a podium finish by eight seconds, two years after suffering similar heartbreak on the Tour de France when he finished one second outside a podium place.
A pure climber, Carapaz was born in Tulcan, 2,980 meters above sea level, which gives him a significant natural advantage in the high mountains.
He burst into the limelight last year when he won a stage of the Giro and finished fourth overall, setting himself up for more grand-tour glory. This year, he soloed to victory on the 14th stage in Courmayeur.
Movistar then proved too strong a team to unsettle, with Mikel Landa staying loyal to the team leader and helping him in the final week.
“I tried to the very end but it was difficult to do much with Carapaz and Landa so strong,” Nibali said.
“The Movistar team was strong too, they have four riders on the front in the finale and there’s not much you can do when a team is so strong.”
Giulio Ciccone (Trek-Segafredo) gave the home fans plenty to celebrate as the 24-year-old won the Maglia Azzurra for the mountains classification with one stage win.
German champion Pascal Ackermann (BORA-hansgrohe) won the points classification thanks to two stage wins in massive sprints.
Miguel Angel Lopez (Astana), who escaped punishment for hitting a fan on Saturday, won the white jersey for the best Under-25 rider as he finished seventh overall.
Simon Yates (Mitchelton-Scott), who had warned his rivals that they should be scared of him, was never in the mix and finished in a hugely disappointing eighth place overall after winning last year’s Vuelta.