The reigning champions opened their campaign with a win over Wales last weekend, and face a tough task away to England at Twickeham next time out.
Ireland had never won in France, but they were on a four-game winning streak in the Six Nations, since they lost to the French in last year’s championship.
France did not look like a side ranked two in the world, but they punished Ireland’s lack of accuracy at the line-out.
The visitors trailed 15-6 at half-time and although they created numerous chances after the interval, as Ireland’s rolling maul got going, sloppy handling errors cost them.
Instead France turned them over on every occasion and when Ireland went wide they did not have the composure to cross the whitewash.
Captain Gaelle Mignot and Caroline Boujard dotted down French efforts before half-time, and it was always a tall order when Ireland trailed by nine at the break.
Niamh Briggs conceded a penalty after six minutes, that Audrey Abadie cooly slotted, before Briggs replied to level things up from the kicking tee.
But the Ireland captain missed a gilt-edged chance to get the first try of the night, as she latched on to Sene Naoupu’s off-load, but fumbled the ball with the try-line at her mercy.
The French slowly began to assert their physicality, and they crossed for their first try of the night after 21 minutes – hooker Mignot touched down on the back of a powerful maul.
And even though the conversion was missed France scored next again, this time Boujard was the beneficiary, and Abadie tagged on the extras.
Briggs notched a second Irish penalty seven minutes before the break, but a lot of the damage had been done in the first half.
France steam-rolled Ireland again in the second-half, but Tierney’s side continued to probe only to foiled time and again by silly mistakes.
The ruck clear-out was a particular weak-point, and France hit the only score of the second-half with a 70th-minute penalty from Laura Delas, sealing a precious win for the hosts.
Tries: G Mignot, C Boujard, Penalties: A Abadie, L Delas. Conversion: Abadie.
Penalties: N Briggs (2).
J Billes; C Boujard, L Godiveau, E Poublan, L Delas; A Abadie, Y Rivoalen; L Arricastre, G Mignot, J Duval; C Ferer, A Forlani; L Grand, P Rayssac, S N’Diaye.
P Carricaburu for Billes (36 mins), C Bertrand for Carricaburu (37), A A Lahbib for Arricastre (53), R Menager for Forlani (55), Carricaburu for Rivoalen (59), L Sansus for Duval (59), J Annery for Grand (61), C Imart for Abadie (64), A Sochat for Mignot (75).
N Briggs; E O’Byrne White, A Donnelly, S Naoupu, M Coyne; N Caughey, L Muldoon; R O’Reilly, C Moloney, A Egan; S Spence, M L Reilly; P Fitzpatrick, C Molloy, H O’Brien.
C Griffin for Molloy (36 mins), Molloy for Griffin (40), L Peat for O’Reilly (48), Griffin for O’Brien (48), C Cooney for Molloy (57), M Healy for Muldoon (69), N Stapleton for Caughey (69), J Shiels for Donnelly (69), Z Grattage for Moloney (70), F Reidy for Egan (75).
Jess Beard (New Zealand).