The 69-year-old who suffers from a spinal illness was accused of stealing 366 million pesos (USD 8.8 million) in state lottery funds meant for charity programmes while she was in office between 2001 and 2010.
The Supreme Court threw out the case on Tuesday, citing insufficient evidence, but her release was delayed for procedural reasons.
"It's a happy day today because she has just been freed," said Laurence Arroyo, who is also a distance relative through marriage.
Her lawyers said that after being freed Arroyo would go to a private hospital for a check-up.
Also Read
In a statement issued by her lawyers Wednesday, Arroyo thanked the Supreme Court and newly-installed President Rodrigo Duterte for not standing in the way of her release.
Government Ombudsman Conchita Carpio-Morales defended the decision to charge Arroyo for plunder, and said on Wednesday she was preparing another corruption charge against her.
The former leader was jailed in 2011 under the administration of arch critic, then-president Benigno Aquino.
Duterte succeeded Aquino in June, and said he was willing to pardon Arroyo.
Another of Arroyo's lawyers, Estelito Mendoza, had suggested that the Supreme Court waited until Aquino stepped down before issuing its ruling as a "courtesy" to Aquino.
Arroyo was initially arrested on charges of electoral sabotage for allegedly conspiring with election officials to rig 2007 senatorial polls.
Because of her illness, the government allowed her to be detained in a military hospital.
But the corruption case against Arroyo was lodged the same year, keeping her in detention.
Despite being detained, Arroyo has won a seat in the House of Representatives in the past three elections, serving as a congresswoman while being held in the hospital.