Watson sustained a series-ending calf injury in Saturday's 64-run win in the 2nd ODI over England at Lord's.
A disappointing performance in his now-final Test against England in Cardiff in July saw him dropped from the Australian side. He said on Sunday he won't attempt to regain a Test spot.
"I've been through a lot of different waves of emotion about what is right for myself, my family and most importantly the team as well," Watson said in a Cricket Australia statement.
"Over the last couple of days there was a lot of clarity (for me) of what the right decision was. I just know that I've given everything I possibly can to get the best out of myself."
Watson said he felt now was the best time to retire from the five-day format.
"I just know it's the right time to move on," Watson said. "I don't have that real fight in me, especially for Test cricket, knowing the lengths physically that I'd have to go through, mentally and technically as well, to be at my best in Test cricket, so I just know it's the right time."
Australia coach Darren Lehmann said Watson "has been an outstanding contributor to the team on and off the field and a great thinker on the game as well as a hugely talented cricketer".
Australia captain Steve Smith said Watson "has been a huge influence on my career and the team as a whole".
"59 Test matches for Australia is an incredible achievement and he can be extremely proud of everything he has done in the game in the longest format," Smith said. "I'm looking forward to continuing to play alongside him in one-day internationals and Twenty20 internationals."
Watson made his Test debut at the Sydney Cricket Ground in January 2005 against Pakistan. He scored 3,731 runs at an average of 35.19, including four centuries and 24 half-centuries.
He also took 75 wickets at 33.68 and held 45 catches.