The 27-year-old is currently on international duty but City have confirmed the deal has been completed following a successful medical in New York. Sevilla said last week that they had agreed a deal with City for the World Cup winner.
Press Association Sport understands Navas has signed for an initial fee of £14.9 million.
He will link up with City after the Confederations Cup in Brazil and a short holiday.
Navas told the club's website: "Manchester City is an exciting project and this is the right moment for me to take this step. I'm very happy with the opportunity and the decision.
"The Premier League is a competition where the football is very fast and will suit the way I play. I'm really looking forward to it.
"City have been successful in recent years and are continuing to make a great team and I'm honoured to now be part of it.
"I'm going to a great club in England and I want to continue developing my game there.
"The club has put a lot of faith in me and I want to repay them out on the pitch."