The 25-year-old Brazilian has spent the last two seasons on loan at Sao Paulo and has now signed a four-and-a-half-year contract which ties him to the club until December 2017.
The Brazilian side announced the deal on their official website, saying Denilson had turned down offers from Gremio, Cruzeiro and Santos to join them.
Denilson moved to Arsenal from Sao Paulo for £3.4m in August 2006 and made 153 appearances for them in all competitions.
His last appearance came in a 2-2 draw at West Brom on March 19, 2011, when he was substituted at half-time.
Denilson told Globo Esporte about his new contract with Sao Paulo: "I have to repay the confidence of the board and the fans by playing well.
"I received other offers and some were more financially attractive, too. But my love and identification with Sao Paulo made the difference in my decision."