The European champions have paid £53m to take the 25-year-old Portugal international away from Molineux after he went on strike in the final days leading up to the end of the summer transfer window.
Nunes joined Wolves for a club record £38m from Sporting Lisbon last summer and helped them avoid relegation from the Premier League after a difficult start, scoring once in 34 appearances in the top flight.
Nunes is Manchester City's fourth summer signing after Mateo Kovacic, Josko Gvardiol and Jeremy Doku.
Pep Guardiola's side needed reinforcement in midfield following a long-term hamstring injury for Kevin De Bruyne.
"I'm so happy to be joining Manchester City, the champions of Europe and a club I've admired for a long time," said Nunes.
"The opportunity to work under [City manager] Pep Guardiola, one of the greatest managers ever, and alongside some of the best players in the world was something I simply couldn't turn down.
"I learned so much during my season at Wolves and I'm excited to continue improving in the Premier League, a division which brings the best out of me. I'm really excited to get going, meet the fans and hopefully be a part of plenty more success at City."
Nunes has won 11 caps for the Portugal national team.