The defeat, in particular the second set which saw Nadal save five match points to avoid a bagel, will raise questions about the Spaniard’s health heading into next month’s French Open.
A knee problem meant the 32-year-old had to pull out of a semifinal against Roger Federer at last month’s Indian Wells and forced him to withdraw from the Miami Masters a week later.
Seeking a 12th title in Monte-Carlo, cracks were perhaps beginning to show in the previous round, as Nadal had to battle back from 4-1 down in the first set against Guido Pella, before eventually taking it on a tie break.
This is the fourth time in 15 matches that Fognini has got the better of Nadal — who was on an 18-match winning streak in the principality — and is one of just seven players to have beaten the 17-time grand slam champion more than once on clay.
The 31-year-old Fognini, who deserves plenty of credit for dismantling his opponent, will now play in his first Masters 1000 final for a shot at the biggest title of his career.
His defeat of the defending champion makes him only the fourth player to have beaten Nadal in Monte-Carlo over the course of the Spaniard’s career.
Fognini will face unseeded Serb Dusan Lajovic — another first-time Masters finalist — in Sunday’s final.