Fernando, 26, began his career in his homeland at Vila Nova before moving to the Portuguese club in 2007 where he won four Primeira Liga titles, two cups and a Europa League medal.
No transfer fee was announced by City, but Porto had issued a statement to the Portuguese Securities Market Commission (CMVM) the previous evening saying a deal worth £12million had been struck between the two clubs.
He will join up with his new team-mates for pre-season training in a fortnight, and said: “I am so happy to finally be joining Manchester City.
“I know there was talk of me possibly signing last January so I am delighted that the deal has now been done and that I am a City player.
“I’m looking forward to meeting my new team-mates and helping City to defend the title. It is a very exciting time to be part of this football club and I cannot wait to play in the Premier League.
“City fans can be assured I will give my all every time I play and I’m looking forward to many happy years in Manchester.
“I have enjoyed my stay with Porto and I thank the club and the fans for their support during my time in Portugal. Now I am ready for a new chapter in my career.”