The 35-year-old Dutchman, who played this season for Malaga in the Spanish league, said that "yesterday I played my last game as a professional."
He scored four goals in limited action for Malaga this season. On Sunday, the Costa del Sol side beat Sporting Gijon 1-0 to finish in fourth place and earn its first Champions League spot.
"My big dream was to play in the Champions League with Malaga, but the moment to say goodbye has come," he said. "Playing at the maximum level forces me to recognize that I have reached my physical limits."
Van Nistelrooy scored a league-best 25 goals to lead Manchester United to the Premier League title in 2003. After transferring to Spain, he scored a league-high 25 goals for Real Madrid in 2006-07.
He won two Spanish league titles with Madrid and two Dutch league titles with PSV.
He also played for Hamburg in Germany and Den Bosch and Heerenveen in the Netherlands.