Following confirmation of Sergio Aguero’s deal on Sunday, Garcia will also join the club on July 1 when his City contract expires.
Garcia has agreed a five-year contract with a €400million buyout clause.
A statement read: “A player with a great future ahead of him, he is a defender very much suited to Barca’s style of play. Captain at every level during his time at La Masia, always with the no3 on his back, Garcia grew up with Carles Puyol, Gerard Pique and Javier Mascherano as his role models.
“Excellent at bringing the ball out from the back and an ability to read the game well, he has been able to improve further on his skills during his time in England with Manchester City.”
Barcelona tried to sign Garcia last summer, seeing a bid of around £15m rejected by City who were looking for £20m.
Garcia rejected a new contract with City with his heart set on a return to the club he left in 2017.
The 20-year-old made 12 appearances as Pep Guardiola’s side won the Premier League title this season but started just three matches.