Milan said in a statement on Monday that they had ended the contract, which had another 18 months to run, by "common accord".
A similar arrangement, which means the Serie A joint leaders will not be able to ask for a transfer fee for the player, was agreed in September before the 31-year-old forward had a change of heart and decided to stay with the club.
"We thank Rivaldo for the contribution he gave to the winning of the Champions League, the Italian Cup and the European Super Cup and wish him all our luck for the continuation of his extraordinary career," the club said the statement.
Since agreeing to stay on in September, Rivaldo has made one substitute appearance in the Champions League and has not featured in Serie A.
Rivaldo said in September that he was weighing up a number of offers from English premier league clubs but a return to Spain, where he made his name with Deportivo Coruna before enjoying five seasons with Barcelona,
Although he is now available on a free transfer, Rivaldo's huge wages -- he was among the top earners in Serie A -- mean he would still be a substantial investment for any club.
Rivaldo joined Milan from Barcelona after winning the World Cup with Brazil in 2002 but never managed to reproduce the form that made him such a success in Spain.
After a low-key first season he was left on the bench for the Champions League final against Juventus and this year has been left on the fringes.
He was never able to shift Portugal's Rui Costa from his slot behind strikers Filippo Inzaghi and Andriy Shevchenko, and this season has fallen further down the pecking order following the arrival of fellow Brazilian Kaka.
Rivaldo recently described the past year as the worst of his career. "I honestly don't know why I can't find space in the team even on the bench," he said.
Rivaldo, though, has continued to be a key part of the Brazil side and scored in the recent South American World Cup qualifier against Peru.