The 31-year-old spent last season on loan with Malaga, scoring eight goals in 31 matches, and has decided to commit his future to the Andalusian outfit after leaving Manchester City this summer.
A statement on www.malagacf.com read: "Malaga and Roque Santa Cruz have reached an agreement for the Paraguayan-born striker to continue with the Blue and Whites.
"Following the end of his previous contract with Manchester City, Santa Cruz has signed with Malaga for the next three years, and will travel to Germany this afternoon with Ignacio Camacho and Bobley Anderson, to join the rest of the first team for pre-season training with coach, Bernd Schuster."
Santa Cruz, who is Paraguay's record goalscorer, began his professional career with Olimpia in his homeland before moving to Bayern Munich in 1999.
After eight years in Germany he moved to England, first with Blackburn and then City, who he joined in 2009 for a fee in the region of £18million. During his time at City he played only a handful of times for the first team while spending time out on loan at Blackburn, Real Betis and Malaga.