France are top of the Six Nations table after a bonus-point win despite a lacklustre second half against Italy.
The hosts started strongly with tries from Teddy Thomas and Charles Ollivon before Italy's Matteo Minozzi scored.
A Tommaso Allan penalty cut France's lead to three, but Gregory Alldritt went over just before the break.
Romain Ntamack's try sealed the bonus point, before Italy's Federico Zani scored and France's Baptiste Serin finished off an individual effort.
Mattia Bellini added a consolation score for Italy, but France held on for a victory which sees them move to the top of the table on points difference from Ireland.
Fast start for France
France have not won the Six Nations since 2010, but their resurgence under new coach Fabien Galthie began with victory against England last weekend.
It looked as if it would be a more dominant win against Italy at the Stade de France as the hosts won a penalty in the third minute because of a high tackle and Ntamack claimed three points.
Shortly after, wing Thomas chased after Ntamack's grubber kick and managed to get there before any Italian defenders, tapping the ball down for Les Bleus' first try.
But French fly-half Ntamack missed the conversion and a subsequent penalty as Storm Ciara made her presence known with a swirling wind in Paris.
Scrum-half Antoine Dupont, so pivotal in the win against England, continued to stake an early claim on the Player of the Championship award as the 23-year-old broke through the Italian defence and captain Ollivon went over from close range.
The tide briefly turned as Thomas came too far out of the French defensive line, leaving plenty of space for Italy wing Minozzi to score in the left corner.
Allan landed the conversion from the touchline, then added a penalty to cut France's lead to three.
But Italy prop Giosue Zilocchi was caught off his feet, gifting Les Bleus a penalty in front of the posts, and Ntamack took the chance to extend his side's advantage.
After more Italian indiscipline, France opted to kick to the corner and it proved to be the correct decision, with Dupont sending a long pass left to Alldritt, who had plenty of room to score.
Inconsistencies begin to show after the break
After a slower start to the second half, it was Italy who had the first chance to get off the mark but Allan's penalty kick went wide.
Then Ntamack breathed new life into the game, taking Thomas' pass and scything through defenders to score the bonus-point try for France.
With victory seemingly sealed, the hosts appeared to lose concentration and Italy took advantage of their lack of focus as Zani went over from close range.
Replacement scrum-half Serin showed another glimpse of what France are capable of as he took a quick penalty, side-stepped a tackle and gathered his own kick to score.
Les Bleus' defence looked to have improved under new coach Shaun Edwards last weekend, but inconsistencies began to show against Italy, giving the Azzurri one last chance to score through Bellini before full-time.
France, who are equal with Ireland on points but top the table on points difference, play Wales in Cardiff on 22 February, while Italy host Scotland earlier the same day.
'It was frustrating' - what they said
France lock Paul Willemse on BBC One: "It was frustrating at the end. We got the bonus point so are happy with that but there were a lot of errors, especially discipline which we need to fix as quickly as possible.
"The atmosphere is great in the team. We have a lot of young guys and have a plan we want to follow. It's about building our own history and we're starting to do that now."
Italy captain Luca Bigi, also on BBC One: "We brought a performance and we showed how strong our attack can be. We scored a try with a driving maul and one in the last minute and we never give up.
"That is a positive we can bring to the next game and I'm so proud to be apart of this team. We conceded too many turnovers last week but we were better today. The effort we showed on the pitch was amazing."
LINE-UPS
France: Bouthier; Thomas, Vincent, Fickou, Rattez; Ntamack, Dupont; Baille, Marchand, Haouas, Le Roux, Willemse, Cros, Ollivon (c), Alldritt.
Replacements: Mauvaka, Poirot, Bamba, Taofifenua, Palu, Woki, Serin, Jalibert.
Italy: Hayward; Bellini, Morisi, Canna, Minozzi; Allan, Braley; Lovotti, Bigi (c), Zilocchi, Zanni, Cannone, Polledri, Negri, Steyn.
Replacements: Zani, Fischetti, Riccioni, Budd, Ruzza, Licata, Palazzani, Bisegni.