The world number one powered to a 6-1, 6-4, 6-2 victory, with the only slight blip when he trailed 4-1 in the second set.
He reeled off seven straight games after that wake-up call, though, to set up a fourth-round meeting with Italian 17th seed Lorenzo Musetti.
Shapovalov, a former Wimbledon semi-finalist but playing in the Roland Garros third round for the first time, struggled on serve throughout, making 10 double faults.
The 20-year-old Alcaraz is bidding for a second straight Grand Slam title after winning the 2022 US Open and then missing this year's Australian Open through injury.
Spain's Alcaraz, the top seed at a Slam for the first time, is slated to meet Novak Djokovic in the semi-finals.