Arsenal have been handed an unenviable Champions League last 16 tie after being drawn against holders Bayern Munich.
Chelsea will take on Turkish side Galatasaray, while Manchester United were drawn to face Greek outfit Olympiacos.
Arsenal boss Arsene Wenger will be feeling a touch of deja vu after his side were paired with the team that knocked them out of last season's competition at the same stage.
However, it was the north London outfit that gave the Bundesliga and European champions their toughest test, with Bayern only progressing on the away goals rule after defeating Arsenal 3-1 at the Emirates Stadium before losing the return leg 2-0 at the Allianz Arena.
Wenger can also take heart from City's come-from-behind victory over Bayern last week.
City, who finished second behind Bayern in Group D, were handed an equally tough draw although it will be a momentous occasion for the club as they have never faced Barcelona in a competitive environment.
By contrast, 2012 winners Chelsea and Manchester United have been handed a kinder draw although both English clubs will face a stern examination in the away fixtures.
Elsewhere, seven-time winners AC Milan will face Atletico Madrid, Bayer Leverkusen must face Ligue 1 champions Paris St Germain, Schalke will play Real Madrid and Zenit St Petersburg have been paired with Borussia Dortmund.
The first leg ties will be played on either February 18/19 or 25/26, with the return clashes on March 11/12 or 18/19.
Champions League last 16 draw
Match 1 - Manchester City v Barcelona
Match 2 - Olympiakos v Manchester United
Match 3 - AC Milan v Atletico Madrid
Match 4 - Bayer Leverkusen v PSG
Match 5 - Galatasaray v Chelsea
Match 6 - Schalke v Real Madrid
Match 7 - Zenit v Borussia Dortmund
Match 8 - Arsenal v Bayern Munich