Torres, who had one year left on his terms with Los Che, joins City for a reported €25-million transfer fee that could feature an additional €10 million-€15 million in add-ons.
"I am so happy to be joining City," Torres said. "Every player wants to be involved in attacking teams and Manchester City are one of the most attacking in world football."
After making his first-team debut for Valencia in 2017, the Spanish youth international scored nine goals and chipped in with 12 assists in 97 matches in all competitions, providing vital contributions to last season's Copa del Rey conquest.
Capable of playing on either wing or in an advanced central role, Torres replaces Leroy Sane in Pep Guardiola's first team after the German international returned to his homeland to join Bayern Munich.
"Pep encourages a really open, aggressive style, which I love, and he is a manager with a proven track record of improving players," Torres said. "To have him overseeing my development is a dream."
Torres is City's first significant signing of the summer transfer window, though the Premier League runners-up are expected to finalize a deal with Bournemouth center-back Nathan Ake. City have also been linked to two other central defenders, Napoli's Kalidou Koulibaly and Villarreal's Pau Torres.