Ilkay Gundogan netted a brace and Kevin De Bruyne scored from a wonderful free-kick to guide the Cityzens to glory.
Post match, City manager Pep Guardiola addressed the media and hailed opponents FC Barcelona as the 'best team in the world'. He particularly praised his former team's performance in the first 30 minutes of the game.
Guardiola said:"Considering the short time we've been together, against the best team in the world, our victory today is so important. Now we have one more game to win.
"Our goal changed everything for our mood, the players realised the bad moment was over."Our players know that during 90 minutes you have bad phases, and we knew that time was over. It was a final for us, not for them.
"I think we showed many, many good things, I am so happy for the players, and they didn't deserve to go six winless.
"We got to know each other better tonight, and we're lucky that if we get through, we won't get Barca in the next round!"
Lionel Messi had given Barcelona the lead early in the game but sadly Luis Enrique could hold on to their lead.
Pep added: "Our performance in Barcelona 11 v 11 was better than our first 38 mins here. We saw the best team in the world.
"We tried high pressing, and we were in real trouble. Barca had the chance to score the second and the game was done."
Sergio Aguero who was left out in the previous encounter against Barcelona was brought back to the starting XI.
On Aguero's role, the City boss said: "It was just one game that I didn't play him. I said before the game, and after the game, to us, without Sergio we cannot achieve our target. I'm so happy for him because he was so happy."