The Australian Open and Wimbledon champion trailed for over an hour against his dogged opponent before clawing his way back to record a 4-6 6-4 6-2 victory in an hour and 56 minutes.
And hard-hitting Shapovalov continued his giant-killing run in Montreal after shocking the 15-time grand slam champion 3-6 6-4 7-6 (7-4) on Thursday. "I was down 3-0 in the tie-break". "Maybe I won five times because I'm better than he was".
Gael Monfils produced the comeback of the day to beat Kei Nishikori in three sets, while emerging Canadian Denis Shapovalov enjoyed the biggest win of his young career by defeating hard-hitting Argentine Juan Martin del Potro.
Nadal had a mini-break on the first point of the tiebreaker, but gave it back with a double-fault for 3-3 and Shapovalov earned his first match point when Nadal netted a backhand to fall behind 6-4.
"It probably is the worst lose of the year, without a doubt, for me", Nadal said. "You can't win every set, every match you play out there". Last time that I played against him I lost, past year in Cincinnati.
Shapovalov became the youngest player to reach the tournament's quarter-finals since Bjorn Borg in 1974.
A strangely error-prone Federer was unable to generate his usual fluency early on, and quickly found himself giving away early breaks to trail 4-1 in the first set.
Does Antonio Conte have a Plan B for Chelsea?
The sport has been littered with players and Coaches returning to their previous clubs, and at Diego Costa could be the next one. The German could well be handed a Premier League debut on Saturday if Conte's training session on Thursday is anything to go by.
Rafael Nadal kicked off his summer hard-court campaign with a bang, dismissing talented Croatian Borna Coric 6-1, 6-2 to reach the third round in Montreal.
"The thing is that they are big cakes, and you have to eat them during the week", said Federer, smiling.
"I knew that when I was healthy, I was going to be able to have chances to win slams again, to play against the best, and beat the best". "We battled, both tried to find a way to win". With the win, Shapovalov should crack the top 100 in the rankings for the first time. next week He could go as high as No. 66 if he wins his quarter-final match against Adrian Mannarino.
The win means Alexander Zverev will take on Nick Kyrgios, who swept aside Victor Troicki 6-1 6-2.
"It's just really to see how it goes this week, and then learn from this week, how I need to then play in Cincinnati (next week) and the U.S. Open".
In other tournament action, American Jared Donaldson lost to Diego Schwartzman 0-6 7-5 7-5, while his countryman Sam Querrey was thrashed 6-4 6-1 by Kevin Anderson of South Africa. No. 12 Roberto Bautista Agut of Spain downed American Ryan Harrison 7-5, 6-2, and Robin Haase of the Netherlands defeated lucky loser Ernesto Escobedo 6-4, 6-1.