The 30-year-old Argentina international spent last season on loan at the Serie A outfit, making 48 appearances, and the Giallorossi have now made the move permanent.
Fazio joined Spurs from Sevilla in 2014 but found first-team action hard to come by at White Hart Lane and spent much of the last 18 months out on loan.
Tottenham said in a statement: "We have reached agreement with AS Roma for the permanent transfer of Federico Fazio.
"Federico joined us in August 2014 from Sevilla and went on to make 32 appearances in a Spurs shirt before returning to spend half of the 2015-16 season on loan with the Spanish side.