The previous deal was rejected by the Colombian people in a popular vote on 2 October.
The revised agreement has been submitted to Congress for approval, rather than put to a popular vote.
The deal is aimed at ending five decades of armed conflict, which has killed more than 260,000 people and left millions internally displaced.
The revised deal was signed in a low-key ceremony in the capital, Bogota, and then handed to the president of the Congress.
The ceremony was deliberately kept much smaller than the signing of the previous agreement on 26 September, which was attended by regional heads of state and the United Nations Secretary-General, Ban Ki-moon.
About 800 people were invited to Thursday`s ceremony in Colon Theatre rather than the 2,500 who attended the previous ceremony in the port city of Cartagena.
As Farc leader Rodrigo Londono, better known as Timochenko, and President Juan Manuel Santos shook hands after taking turns to sign the document, the guests rose to their feet and chanted “Si se pudo” (“Yes, we could”).
Timochenko said the agreement “put a definite end to the war so we can confront our difference in a civilised manner”.
President Santos said the revised agreement was “better” than the previous one because it addressed many of the concerns of those who had voted “No” in the October referendum.
He warned that its implementation could not be delayed by a single minute and asked the guests to imagine for a moment what it would be like to return to war with the Farc.
He said he expected Congress to vote on the deal as early as next week.