The 27-year-old, who has 14 Spain caps and six international goals, follows Jesus Navas from Seville.
A statement on the club's website said: "City are delighted to announce the signing of Alvaro Negredo, who becomes the club's third new recruit of the summer."
Negredo will cost City a reported initial fee of £16.4million plus add-ons of up to £4.2million.
City boss Manuel Pellegrini is close to signing another striker, Montenegro's Stevan Jovetic, from Fiorentina.
The Serie A club announced last night it has reached an agreement to sell Jovetic, 23, to City for a fee of £22.4million.
Negredo will wear the number nine shirt that was left vacant when Emmanuel Adebayor moved clubs.
The 27-year old was fourth top scorer in Spain last season with 25 league goals, behind Lionel Messi, Cristiano Ronaldo and Radamel Falcao.
Negredo told a press conference in Spain earlier this week: "I have spoken to Navas, he's an important player in anyone's squad and I'm very happy to be playing with him again.
"Manuel Pellegrini completely convinced me to join Manchester City. It's a big club and a new challenge for me."
He is the third signing for City so far following Navas and Brazilian midfielder Fernandinho from Ukrainian champions Shakhtar Donetsk for a fee of around £30million.