No financial details were disclosed but British media reported that City paid Wolves about 53 million pounds ($67.20 million) for the 25-year-old.
“The opportunity to work under Pep Guardiola, one of the greatest managers ever, and alongside some of the best players in the world was something I couldn’t turn down,” Nunes said.
“I’ve 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.”
Nunes had been absent from training with the squad, Wolves manager Gary O’Neil said, after Wolves rejected City’s initial 47 million pounds bid.
Wolves signed the Brazilian-born Nunes last August for a then club-record transfer fee of 45 million euros ($48.83 million) from Sporting on a five-year contract.
Nunes has played 11 times for Portugal, having turned down a call-up from his native Brazil. He has scored one international goal in a World Cup qualifier against Turkey and was included in his country’s squad for last year’s Qatar World Cup.
The midfielder made 34 Premier League appearances for Wolves last season and started their first two league games this term. He was sent off in the 4-1 defeat by Brighton & Hove Albion.
($1 = 0.7886 pounds)
($1 = 0.9215 euros)
(Reporting by Trevor Stynes; Editing by Ken Ferris and Toby Davis)