The 19-hour debate, capped by unanimous votes on second and third readings, took place as groups of protesters demonstrated in an all-night vigil organised by the Democrats.
The amnesty law, brought to the House floor by a group of Pheu Thai Party MPs, contains seven sections. The most controversial is Section 3, which provides blanket amnesty for all politics-connected charges, including the coup that overthrew the government of Thaksin Shinawatra.
Earlier amnesty bills offered only limited amnesty, specifically excluding Thaksin and other senior political leaders.
The newly passed version was written and approved last month by a House scrutiny panel. It offers amnesty for all those involved in political protests from Jan 1, 2004 to Aug 8, 2013, except for those accused under Section 112 of the Criminal Code, also known as the lese majeste law.
It took the MPs just over six hours to approve the name of the amnesty legislation: "Granting an amnesty to those committing offences relating to political demonstrations and the political expression of the public".
A proposal to postpone the reading of Section 3 to Friday was voted down in a close vote. Within hours, a nationally televised session of the House approved second reading.
Parliament continued with the voting on the third readings. The final vote was 310-0 with four abstentions.
The margin was a victory of sorts for Pheu Thai hardliners and for Thaksin, both of whom lobbied the parliamentary whips to make the bill an official party issue.
The four who abstained included senior red shirt activists who have been charged with terrorism and other crimes.
Vorachai Hema had sponsored a previously popular bill that gave only limited amnesty. Nattawut Saikuar, Kattiya Sawasdipol and Weng Tojirakarn all are core members of the United Front for Democracy against Dictatorship (UDD). They face charges of terrorism and other charges stemming from the 2010 Bangkok violence, and now will presumably see those charges dropped.
The House session ended at 4:25am Friday.