Adrian Lopez filled in for injured striker Diego Costa and created the fifth-minute goal after hitting the post, as the Atletico forward headed an ensuing cross on to Koke to fire home.
The boisterous atmosphere at the Vicente Calderon Stadium unsettled Barcelona early on, and Atletico striker David Villa hit the woodwork twice within the opening 20 minutes.
Barcelona dug in but produced few tangible scoring chances apart from a pair of first-half misses by Lionel Messi.
Atletico, which leads Barcelona by one point in the league, reached the last four of Europe's top competition for the first time since 1974.
The teams had played four previous games this season which all ended in draws, but Atletico's breakthrough kept Barcelona from the semifinals for the first time in seven seasons.
"We just have to keep working hard and stay calm because we still haven't won anything," said Atletico coach Diego Simeone, whose team will face either crosstown rival Real Madrid, Chelsea, or Bayern Munich in a two-legged semifinal. Bayern beat Manchester United 3-1 on Wednesday to eliminate the English champions 4-2 overall.
Adrian replaced Costa after Atletico's star striker failed to recover from a hamstring injury and the little-used forward immediately made a mark by rocketing a shot off the near post just before the opening goal. Adrian eventually headed the ball back across the area for Koke to score from close range to the delight of the capacity crowd.
Atletico, feeding off the roar of its home supporters, had Barcelona consistently on the back foot early on and Villa found the post in the 11th-minute.
Barcelona controlled possession but Atletico was dangerous on the counter as Villa fired on the run over goalkeeper Jose Manuel Pinto but off the crossbar — the team's third touch of the woodwork.
Messi had Barcelona's lone scoring chances of the first half as he headed Dani Alves' cross past the near post in the 13th before firing wide past the opposite post near the break after Neymar's quick footwork created the chance inside the area.
Barcelona took control from the restart as Atletico hung back, with goalkeeper Thibaut Courtois doing well to poke the ball away at Messi's feet as he darted through the area and then recover in time to ensure the ball was deflected over goal in the ensuing scramble.
"There was a big difference between one team and another early on. We couldn't string together four or five passes like we needed to," Barcelona coach Gerardo Martino said. "If we had managed to equalize we might have been able to play the game we wanted."
Adrian was taken off to a rousing ovation in the 61st and replaced by Diego Ribas, who scored Atletico's goal in the 1-1 draw in the first leg. Minutes later, Pinto was diving to save from the Brazilian on a counterattack before Atletico's penalty appeals were waved off when Barcelona defender Javier Mascherano tripped up Villa inside the area.
Villa and Gabi Fernandez led another counter in the 70th, only for Pinto to kick out Gabi's weak shot.
Barcelona failed to muster up anything more and Pinto had to make a late save on Villa to keep it close, but the Catalans could not break through the hosts tight defence.
"I thought we deserved the draw," Barcelona midfielder Xavi Hernandez said, despite his team managing just five attempts on goal to Atletico's nine. "The game got away from us."
After walking off the pitch to loud cheers, the Atletico players re-emerged again to celebrate a memorable victory with the nearly 50,000 fans.
"The five games (between Atletico and Barcelona this season) all turned out nearly the same way, there weren't any major differences except there was a clear winner this time," Martino said.
Follow Paul Logothetis on Twitter: www.twitter.com/PaulLogoAP