Fincantieri will buy 50 per cent of the shipyard in the western French port of Saint Nazaire, the sources said, while the French state will "loan" another one percent stake for 12 years which can be retracted if it fails to keep promises made to the government.
French President Emmanuel Macron and Italian Prime Minister Paolo Gentiloni signed the agreement in the eastern French city of Lyon.
France had said it was ready to seek other buyers for its biggest shipyard should Italy refuse a 50-50 ownership split.
The French government sparked the row in July by temporarily nationalising the STX shipyard after backsliding on a deal with Fincantieri agreed by then French president Francois Hollande in April.
The deal gave Fincantieri a controlling stake in the facility in return for which the Italian company gave job guarantees.
But Macron said he wanted to renegotiate the deal upon taking office in May.
- with AFP