He joined Manchester City for a fee of £12 million in June 2009, where he won the FA Cup in 2011 and the Premier League title the following season.
After a season on loan, he joined Everton on a three-year contract in July 2014, and on its expiration he signed for West Bromwich Albion, where he played until his retirement in 2020.
[citation needed] Following a season in the reserves and academy sides he played his first senior match for Villa on 2 May 1998, a 3–1 win at Sheffield Wednesday, as a 49th-minute substitute for Ian Taylor.
[6] On 24 April 1999, on at half time for the injured Dion Dublin, he finished Steve Stone's cross 12 minutes later for his first professional goal, concluding a 2–0 win over Nottingham Forest at Villa Park.
[13][14][15] Barry publicly criticised his manager, Martin O'Neill, accusing him of making no attempt to keep him at the club, and further stating a desire to join Liverpool in order to compete in the Champions League.
[20] Many Aston Villa fans publicly criticised Barry for this move considering his alleged desire to play in the UEFA Champions League.
[21] However, Barry responded to this positively and wrote a letter to the Birmingham Mail in which he thanked the Villa fans for their support while he was there, claiming that his move to City was for a "new challenge".
He made his debut for City in the opening league game of the season against Blackburn Rovers at Ewood Park, playing the full 90 minutes in a 2–0 victory.
On 16 February 2010, a week before his 29th birthday he played the full 90 minutes and scored a late equaliser in a 1–1 draw against Stoke City at the Britannia Stadium.
[36] On 8 July 2014, following his successful loan spell at Goodison Park, Barry completed a permanent move to Everton, signing a three-year deal having been released by Manchester City following the expiry of his contract.
[37] On 26 December, he was booked for a foul on Steven Nzonzi in a 1–0 home loss to Stoke City, making him the first player to receive 100 yellow cards in the Premier League era.
[38] Barry was sent off with two minutes remaining away to Chelsea on 11 February 2015 for a foul on Willian, causing a melée in which he was confronted by Branislav Ivanović; the game was scoreless at the incident and Everton eventually lost 1–0.
[39] Barry was sent off in added time at the end of a 2–1 loss at Arsenal on 24 October 2015, receiving a second yellow card for a foul on Kieran Gibbs.
[40] Following Everton's 2–1 win over Manchester City in the first leg of the League Cup semi-final on 6 January 2016, manager Roberto Martínez described Barry as "one of the best English players ever.
"[41] On 12 March 2016 in a 2–0 win over Chelsea in the FA Cup quarter-final, Barry was booked for a confrontation with Diego Costa, who was given a second yellow card for his part and sent off.
[43] Barry became the third player (after Ryan Giggs and Frank Lampard) to make 600 Premier League appearances when he played against Middlesbrough on 17 September 2016, and equalised from a corner-kick routine in a 3–1 victory.
[46] On 25 September, Barry captained West Brom as he made his 633rd Premier League appearance, beating Ryan Giggs' record of 632, in a 2–0 loss to Arsenal at the Emirates Stadium.
He appeared as a half-time substitute in England's first 2002 FIFA World Cup qualifier against Germany in the final match played at the old Wembley Stadium.
[67] In August 2007, Barry became one of the few players to represent England at both the old and new Wembley Stadiums by coming on as a substitute, replacing Michael Carrick in a friendly against Germany.
Barry started in central midfield for England against Israel on 8 September 2007, as a replacement for the injured Owen Hargreaves, and recorded two assists.
Playing for England in a friendly against Egypt at Wembley, Barry was handed the captaincy in a game that they won 3–1, with his then Manchester City teammate Shaun Wright-Phillips on the scoresheet.
However, an ankle injury picked up while playing for Manchester City made him uncertain for the 2010 FIFA World Cup,[70] yet he was included in the 23-man England squad for the tournament.
On 9 February 2011, he was again made captain for the final 10 minutes of the match against Denmark, after Frank Lampard and Ashley Cole had already worn the skipper's armband.