The England midfielder, 24, has joined the big-spending Blues after a summer of speculation over his future, although Eastlands always seemed likely to be his ultimate destination.
Milner has signed a five-year contract and midfielder Ireland has joined Villa from City as part of the deal.
Milner, who completed his medical late on Tuesday, could make his City debut in their Premier League clash with Liverpool at Eastlands on Monday.
City boss Roberto Mancini told the club's website: "I am very happy to have James with us, everybody knows we have admired him for some time.
"He is an excellent midfielder who can play in a number of positions. This is important for the team and I am looking forward to seeing him play for us. We have a very strong squad and this signing is a very important one for us.
"James is already a very good player who has proved he can play at the very top level. But he is also young and a good character, I think he can also improve and be a great player for Manchester City for a long time."
Milner replaces Ireland as City's number seven, and Mancini added of the departing midfielder: "I hope things go well for Stevie at Villa.
"He is also a very good player and he has played a big part in City's history. I think he will enjoy the change of being at another club and I hope he does well for Aston Villa."
Milner's future had been the subject of ongoing speculation since Villa rejected a bid of around £20million from City in May.
Then Villa boss Martin O'Neill revealed last month that the midfielder had asked for a move away from Villa Park and had refused to sign a new contract.
Villa's decision to sell Milner and how much of the fee O'Neill would be able to reinvest in the transfer market were rumoured to be key factors in the Northern Irishman's shock resignation last week.
Under O'Neill, Milner developed into one of England's top midfielders last season, proving a revelation after moving from the wing into the centre.
He was the principal figure behind Villa's ultimately unsuccessful push for a Champions League spot and his form earned him a starting spot in three of England's four World Cup games in South Africa.
Indeed, Milner was one of the few players to emerge with his reputation intact from a disappointing tournament and City continued their pursuit on his return.
The two clubs finally agreed a fee but the deal was held up still further by the involvement of Ireland, who reportedly demanded a £2million pay-off from City.
Milner played in Villa's opening Barclays Premier League game of the season against West Ham last Saturday and scored in a 3-0 win, earning a standing ovation as he bade his farewell.
But the transfer has now finally gone through, bringing an end to two years at Villa Park for Milner and eight years with City for Ireland.
Ireland, now 23, looked set for a great future at Eastlands after breaking into the first team as a teenager and then picking up the club's player of the year award for the 2008/09 season.
But his opportunities dried up once Mancini replaced Mark Hughes last autumn and the Italian made it clear Ireland's future lay elsewhere.
Milner began his career with Leeds and became the Premier League's then youngest scorer when he netted against Sunderland on Boxing Day 2002, nine days before his 17th birthday.
Leeds' relegation saw Milner sold to Newcastle in 2004 but he was on the move again a year later when a clause in the deal that took Nolberto Solano from Villa to St James' Park sent Milner on loan in the other direction.
A permanent deal seemed on the cards the following summer but Newcastle eventually decided to keep the midfielder, and he stayed with the Magpies for another two seasons before joining Villa for a reported £12million in 2008.
Milner becomes City's eighth signing of the transfer window and follows in the footsteps of former Villa team-mate Gareth Barry, who moved to Eastlands last summer.