Ivan Rakitic scored the only goal of the night after half an hour as he lofted home from a majestic Lionel Messi pass.
The English champions had their chances in the second half, but any hopes of an historic comeback were ended when Marc-Andre ter Stegen produced a stunning penalty save from Sergio Aguero 12 minutes from time.
However, it was his opposite number who was the star of the show as Hart time and again prevented Messi, Neymar and Luis Suarez from piling on more agony for City.
Barca will now join La Liga rivals Real Madrid and Atletico Madrid in Friday's draw for the last eight.
"A lot of them just hit me tonight - I just tried to stay big. It was busy. I just tried to smother them as much as I could," said Hart, who had also saved a Messi penalty in the first leg.
"I wanted that first leg penalty save to count and unfortunately it hasn't.
"We've gone out to a magnificent side but that's the second time in two years and that's disappointing. They've got fantastic players but we've had a big chance and unfortunately we didn't take it."
Barcelona face Real Madrid in a potentially decisive clash in the Spanish title race on Sunday, but Luis Enrique's men showed their minds were on the job in hand from the off and should have been ahead after just six minutes.
Dani Alves robbed a sleeping Vincent Kompany on the edge of his own box and fed Neymar, who had started to wheel away in celebration before his shot come back off the inside of the post and rebounded to safety.
Hart then produced the first in a string of fine saves to turn behind a fierce drive from Messi, but there was some encouragement for City in the opening quarter, too, as Alves did just enough to deny James Milner a clear run on goal from Yaya Toure's dangerous low cross.
Barca did finally make the breakthrough on the half hour as Messi mesmerised a series of City defenders before lifting a cross into the path of Rakitic, who controlled the ball on his chest before lofting past Hart to register his first Champions League goal.
Suarez was then inches away from putting the tie beyond all doubt as he latched on to Neymar's through ball and saw his flick past Hart trickle on to the base of the post a minute before the break.
Barca continued to press early in the second period as Hart was forced into saves from Jordi Alba and Messi.
However, the visitors were nearly handed a lifeline by Ter Stegen as he lost possession when trying to dribble past Aguero and was grateful to the posse of Barca defenders that got back to cover his open goal.
As City pushed to get back into the tie, the chances continued to flow at the other end as Suarez blasted into the side-netting, whilst Hart spread himself well twice to deny Messi.
Ter Stegen redeemed himself for his earlier error with his most significant save since joining from Borussia Monchengladbach by flying to his right to parry Aguero's spot-kick after Javier Mascherano had been harshly adjudged to have upended his Argentine international team-mate.
However, it was Hart who shone once more in the dying minutes as England's number one somehow blocked Messi's thunderous strike from point-blank range to prevent the four-time World Player of the Year once again moving in front of Cristiano Ronaldo in the fight to be the top scorer in Champions League history.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ