The justices voted 11-4 to grant Arroyo's petition seeking to dismiss the plunder case before the special anti-graft Sandiganbayan court because of a lack of evidence, Supreme Court spokesman Theodore Te said.
The case involved the alleged misuse of 366 million pesos (USD 7.8 million) from the state lottery agency, the Philippine Charity Sweepstakes Office.
"I rejoice over this decision that has already given her what she rightly deserves which is justice," said Jesus Dureza, who served as adviser on peace talks with communist and Muslim rebels under Arroyo.
Arroyo, 69, finished her tumultuous nine-year term in 2010 but was arrested the following year on an election fraud charge, for which she was allowed to post bail. She was later charged with plunder.
Also Read
Despite her detention and her neck ailment that prompted her to be moved around on a wheelchair, she was re-elected to Congress in May.
Arroyo rejected his offer, saying she had to be convicted first of a crime to be eligible for a pardon, and that she preferred to fight the allegation.
A daughter of a former Philippine president and a classmate of former US President Bill Clinton at Georgetown University, Arroyo had been a senator and vice president before suddenly rising to the presidency in 2001 after then President Joseph Estrada was ousted in a "people power" revolt that she helped lead. Estrada was accused then of largescale corruption, which he denied.
Arroyo admitted talking to an election official and apologized for her "lapse in judgment" in making such a call but said the conversation occurred after the votes had been counted.
Raul Lambino, one of Arroyo's lawyers, said the mood turned jubilant in Arroyo's hospital room when word leaked that the country's highest court was set to strike down the only criminal case keeping her detained.