The Catalans took a somewhat fortuitous lead inside 12 minutes when Diego Costa inadvertently diverted a corner into his own net at the near post as he attempted to clear Lionel Messi’s low delivery.
Costa was then a villain again for Atletico at the other end as he hit a weak penalty a few minutes later and saw it saved by Marc-Andre ter Stegen, only to be let off as VAR ordered it to be retaken because the German goalkeeper was slightly off his line.
After several minutes of protests from Barca’s players, Saul Niguez stepped up to take the second kick and sent Ter Stegen the wrong way.
Barca then won a penalty of their own early in the second half as Nelson Semedo was tripped by Felipe and Messi kept his cool to beat Jan Oblak with an exquisite Panenka effort for his 700th career goal.
That restored Barcelona’s lead and Setien’s side looked likely to build on their advantage, but the Rojiblancos won another penalty just after the hour as Semedo was adjudged to have upended Carrasco.
Despite replays suggesting there may have been no contact, the decision stood and Saul picked the same spot, this time getting a little lucky as Ter Stegen got a good hand on the ball but could only help it into the corner.
Vidal then curled an effort just wide from the edge of the box and also glanced a header just off target as Barca had the best of the closing stages.
Atleti broke dangerously in added time in a frantic finale which also saw Barca curl in a dangerous free-kick, but the game finished 2-2 and Setien’s side are now a point behind title rivals Real Madrid, having played one game more than Los Blancos.
Meanwhile, Atletico are still in third, two points clear of fourth-placed Sevilla with five fixtures remaining.