The 38-year-old midfielder signed with Paris St. Germain in January, but said in a statement he has decided not to extend his contract, the British newspaper The Independent reported.
"I'm thankful to PSG for giving me the opportunity to continue but I feel now is the right time to finish my career, playing at the highest level," Beckham said.
"If you had told me as a young boy I would have played for and won trophies with my boyhood club Manchester United, proudly captained and played for my country over one hundred times and lined up for some of the biggest clubs in the world, I would have told you it was a fantasy," he added. "I'm fortunate to have realized those dreams."
Beckham made his debut with Manchester United in 1996 and collected 115 caps during his career. His last-minute goal against Greece put England in the 2002 World Cup.
Paris St. Germain has won the 2013 Ligue 1 title and still has two games to play this season. A May 26 match in Lorient with be Beckham's last.
Earlier this year he was named an ambassador for soccer in China.
Texas principal bans speaking Spanish, stirs controversy
Gal Gadot cast as Wonder Woman for 'Batman vs. Superman'