Forwards Sergio Parisse and Martin Castrogiovanni scored a try each as Italy dealt a massive blow to French Six Nations hopes.
Just as two years ago, when Italy stunned France with a 22-21 win in Rome, the French once again wasted a lead, having gone into the break 15-13 ahead thanks to tries from No 8 Louis Picamoles and winger Benjamin Fall. But the cunning and faultless kicking of fly-half Luciano Orquera helped Italy fight back in the second half.
Orquera set up both the Italian tries, converted them, and added a penalty and a drop goal to cap a superb individual performance. France must now regroup if they are to beat Wales at Stade de France next Saturday to keep their title hopes alive.
"It's hard to say what went wrong, but you have to congratulate them, they started better than us," France flyhalf Frédéric Michalak said. "We tried not to panic, but I think we lost the match with our carelessness.
"They are very solid in the front and at the back, they're good players. But we didn't take our chances and they believed in it until the end."
France started brightly but Italy counter-attacked from deep in their own half, and Orquera burst through the French midfield with a surging run and offloaded to No 8 Parisse to go over in the left corner for the first try after just five minutes.
With France camping near the Italian line, Michalak switched the ball from right to left and fed Picamoles, who shrugged off Parisse and full-back Andrea Masi to go over in the left corner.
But Orquera knocked over a drop goal from 20 yards and a penalty from a bit further back to put Italy 13-5 up midway through the first half.
France thought they had scored another try shortly afterwards when their mobile pack swarmed around full-back Yoann Huget and bundled him over the line, but the try was not given after a long consultation over the video replay.
Instead, France got a scrum near the line and forced Italy into conceding a penalty, which Michalak slotted over to reduce the arrears to 13-8. France took the lead when Huget held off a tackle, fed centre Florian Fritz and he offloaded to Fall, who used his pace to run in from 30 yards for a converted try to put the French ahead for the first time at 15-13.
After a scrappy start to the second half, Michalak punished some Italian indiscipline with a fine penalty to open up a five-point gap. But in a virtual action replay of 2010, when Les Bleus led the Azzurri 18-6, the visitors were unable to protect their lead.
Orquera held off a tackle to feed Castrogiovanni, who bundled over for his 12th Italy try – making him one of the most prolific props in international rugby.
Orquera converted from near the posts to put Italy in front once more at 20-18. And things got worse for France when lock and captain Pascal Papé had to go off with a knee injury and was replaced by the inexperienced Romain Taofifenua, with flanker Thierry Dusautoir taking the armband.
Italian replacement Kristopher Burton slotted over a drop goal after 68 minuters to pile more pressure on France and leave them needing a converted try to win.
France won a lineout close to the Italian line with four minutes left but turned over the ball and Italy got a reprieve. France launched one last attack as Dusautoir led the charge; the visitors were awarded a penalty with 20 seconds to go some 15 yards from the line, but were forced out of play.
Join our new commenting forum
Join thought-provoking conversations, follow other Independent readers and see their replies