A total of 477 lawmakers voted for the pact, 70 against and 21 abstained. Nine members did not take part in the vote on the treaty, which requires countries with high debt to keep their structural deficits below 0.5% of gross domestic product.
Socialist President Francois Hollande's cabinet has already backed the pact, which many on the French left had said they will vote against.
However, several Socialist parliamentarians said a majority of the left on Tuesday voted in favour of the pact, prompting Hollande to hail a "united" stand.
The pact must still be approved by the upper house Senate.
The debate in the National Assembly on the measure opened a week ago with Prime Minister Jean-Marc Ayrault saying France would not be sacrificing its "sovereignty" by ratifying the text.
"The treaty itself imposes no constraints on public spending," he said.
"Fiscal sovereignty will remain with parliament."