"I have decided to retire at the end of the season," the German driver told a press conference in Suzuka.
"I still feel I am capable of competing against the best but the time sometimes comes to say goodbye and this time it might be forever."
He added: "During the past month I was not sure if I still had the motivation and energy which is necessary to go on. It is not my style to go on if I'm not 100 percent with it but with today's decision I feel relieved."
The 43-year-old's place at Mercedes will be taken by McLaren's Lewis Hamilton in 2013.
Schumacher won 91 races between 1991 and 2006 -- two world titles with Benetton in 1994 and 1995 and five with Ferrari who he joined in 1996 -- from 2000 to 2004.
The German retired for the first time in 2006 before returning to the sport in 2010 on a three-year contract with Mercedes