A parole board cut his term by a third, his lawyer Shani Illouz said. Olmert, jailed in February 2016, will go free on Sunday, she told Israeli radio.
Olmert is the first former Israeli head of government to be sent to prison.
He became prime minister in 2006 but resigned three years later when police recommended charges against him.
The 71-year-old is currently being investigated by the state attorney's office over suspicions he smuggled a chapter of a book he is writing out of prison, raising fears that it might compromise national security.
The parole board said Olmert had been "punished for his deeds and paid a heavy price", according to AFP news agency.
"The inmate underwent a significant rehabilitation process in prison and displays motivation to continue it," the board added.
The board said Olmert's behaviour had been largely "impeccable".
Last week, Olmert was taken to hospital after complaining of chest pains. But he was given the all-clear and returned to prison a few days later.
A leaked picture of Olmert in a hospital gown looking gaunt circulated on social media, leading to calls for leniency, including from Education Minister Naftali Bennett.
In 2014, Olmert was convicted of bribery in connection with a property development when he was mayor of Jerusalem between 1993 and 2003.
He was also convicted of fraud, breach of trust and obstructing justice in a series of separate trials, and acquitted of other charges.
Former Israeli Prime Minister Ehud Olmert is to be released early from prison, where he is serving a 27-month sentence for corruption.