The struggling visitors took a shock lead after just seven minutes when Javi Galan was adjudged to have blocked a cross with his arm in the area, and Jon Guridi kept his cool to tuck the resulting penalty past Jan Oblak.
The early goal stunned the home crowd into a silence that hung over the Metropolitano until the 20th minute when they were almost ignited, but Samuel Lino could only smash the ball against the bar after being teed up in the penalty area by Antoine Griezmann.
Alaves were happy to sit back and hold onto their lead and didn’t show any attacking intent, while Atleti could only muster multiple Marcos Llorente shots from distance, but he couldn’t find an equaliser before the break.
In an effort to rescue his 700th game in charge of the hosts, Diego Simeone turned to his son Giuliano at the break in an attempt to add some attacking impetus to his side.
The frustrated home crowd had to wait until the hour mark to see another true chance, but Clement Lenglet completely lost his bearings and missed the target after being picked out in the box from Griezmann’s free-kick.
Simeone threatened a leveller inside the final 20 minutes as he raced clear down the left, but despite having teammates in the box, he went for goal and saw his effort deflected into the side-netting.
A sucker punch was on the way for the resolute Alaves defence though, as Abdel Abqar was adjudged to have blocked a header with his arm inside the box, allowing Griezmann to hammer home from 12 yards beyond the reach of Antonio Sivera.
With parity restored, the hosts continued to push in search of a winner, and the turnaround was complete with four minutes to go when Alexander Sorloth hammered the ball home at the near post after a neat through ball from Rodrigo De Paul.
The victory elevates Atleti into second and four points behind leaders Barcelona, albeit having played a game more, while Alaves remain just three points clear of the drop zone after losing a sixth consecutive away league match.