Brazilian forward Ribas came on to replace Atletico's talisman Diego Costa after half an hour and unleashed an unstoppable drive from 30 yards to put the visitors ahead 11 minutes into the second half.
But compatriot Neymar finished off a fine pass by Andres Iniesta to level the score 15 minutes later and set up the fourth successive draw in the meetings between the two teams this season as the match finished tied at 1-1.
Atletico had successfully cancelled out Barcelona until Ribas' goal, but were clinging on by the end, relying on goalkeeper Thibaut Courtois to make outstanding saves after Neymar's equaliser, denying Iniesta and then Lionel Messi.
And Diego Simeone's side's desperation was underlined by the fact six of their players picked up yellow cards over the 90 minutes, while just two Barca players received cautions.
Costa was named in the starting line-up despite retiring prematurely from Atleti's training session the previous evening, but succumbed to a hamstring injury which is almost certain to rule him out of the return leg in Madrid.
David Villa came in for the suspended Raul Garcia and had the first attempt of the night, trying his luck from 30 yards but firing well wide of the target.
The former Barca striker had a clearer opportunity just moments later, receiving the ball after Arda Turan had intercepted Pinto's poor kick, but shot wide of the far post.
Barca had to make their first substitution of the night after just 11 minutes, Gerard Pique struggling after an aerial challenge and forced to come off for 23-year-old Marc Bartra, who shined in a rare moment in the spotlight.
Despite the early openings, the game soon took the same shape of the three cagey encounters between the two sides this season, with Barca taking until 23 minutes to test Courtois, Neymar heading softly into the Belgian's hands.
Their next attempt was by the majestic Iniesta, played in after Messi had danced around Miranda, but Diego Godin threw out a leg to block the shot before it could get to Courtois. Then Davi Alves crossed to Messi, but the Argentinian could not get enough power on his header, and ended the night failing to get on the scoresheet for the first time in six games.
Neymar had a final go for Barca before half-time, his ambitious long ranger flying just a little high of the crossbar, while Villa tested Pinto at the other end.
The second half began like the first with little space opening up, so it required a goal out of nothing to break the deadlock. That is what Ribas produced in the 56th minute when he picked the ball up on the right hand side following a free-kick, beat Xavi then drove the ball from an impossible angle and range into the top corner.
Barca were unable to find an immediate response, resorting to Iniesta appealing for a soft penalty and the unlikely figure of Sergio Busquets shooting from outside the area, his effort patted away comfortably by Courtois. Messi then tried to head a cross from Alves towards goal but it hit his chest on its way over the bar.
Barca got their equaliser with 20 minutes remaining when Iniesta split the Atleti defence with an exquisite pass to Neymar inside the area, the Brazilian shooting into the far corner of Courtois' net with one touch.
The goal galvanised the Nou Camp and rattled the visitors. Just a few minutes later Iniesta went looking for goal, only denied by an inspired leap across goal by Courtois, who finger tipped the ball out for a corner.
Barca had a near monopoly on possession after the equaliser, while Atletico finished the game playing with second string midfielder Cristian Rodriguez as their sole striker, a damning indictment of the thinness of Diego Simeone's squad in comparison to Barca, who had Pedro and Alexis Sanchez on the bench.
Courtois made one final save of the night to keep out Messi's late free-kick, and Atletico will feel relieved to return to Madrid with the tie evenly balanced, having scored a crucial goal to boot.