Goals from Yannick Carrasco and Angel Correa in the opening half-hour put Diego Simeone's side in early charge at the Wanda Metropolitano but Igor Zubeldia's reply seven minutes from time ensured a nervy finish.
The hosts held on for a crucial win that takes them four points clear of second-placed Barcelona with two games remaining.
Real Madrid are a point further back in third but could move back to within two of the leaders with victory in their game in hand at Granada on Thursday.
Atletico's victory means fourth-placed Sevilla's hopes of snatching the crown are all but over despite their 1-0 win over Valencia.
Youssef En-Nesyri scored their winner in the 66th minute at the Ramon Sanchez-Pizjuan Stadium but Julen Lopetegui's side remain six points behind Atletico with just two games remaining.
At the other end of the table, Huesca climbed out of the relegation zone with a 1-0 victory over Athletic Bilbao. Sandro Ramirez scored their winner just after the hour, lifting them to 17th and two points above Valladolid, but having played a game more.
Elsewhere, Nolito scored the only goal as Celta Vigo beat Getafe 1-0.
In Serie A, Gianluigi Buffon and Cristiano Ronaldo helped to keep deposed champions Juventus' Champions League qualification hopes alive with a 3-1 win at Sassuolo.
Buffon saved Domenico Berardi's 16th-minute penalty before Adrien Rabiot fired the visitors into a 1-0 lead, and Ronaldo doubled their advantage with his 100th goal for the club.
Paulo Dybala made it 3-1 with 24 minutes remaining to drag Juve to within a point of fourth-placed Napoli.
AC Milan remain in the hunt for the runners-up spot after Ante Rebic plundered a 12-minute hat-trick in a 7-0 romp at Torino.
Goals from Theo Hernandez, Franck Kessie and Brahim Diaz effectively wrapped up the points with just 50 minutes gone, but Hernandez's second and Rebic's treble completed the rout.
Stefano Pioli's men still trail second-placed Atalanta on goal difference after they maintained their challenge with a 2-0 win over relegation-haunted Benevento, with Luis Muriel and substitute Mario Pasilic doing the damage.
Two goals inside the opening 20 minutes helped champions Inter Milan maintain a 13-point lead at the top courtesy of a 3-1 victory over Roma.
Marcelo Brozovic and Matias Vecino put the home side in the driving seat and although Henrikh Mkhitaryan pulled one back, Romelu Lukaku added a third late on.
At the other end of the table, Genoa secured their top-flight status with a 2-0 win at Bologna with Davide Zappacosta and Gianluca Scamacca on the scoresheet.
However, Spezia's survival fight goes on after an 80th-minute equaliser by substitute Keita Balde meant they had to settle for a 2-2 draw at Sampdoria.
Tommaso Pobega's double, which came either side of Valerio Verre's equaliser, looked to have eased them six points clear of the bottom three with two games to play, but Balde ensured there is work still to do.
Ciro Immobile's late winner for Lazio condemned relegated Parma to a 1-0 defeat, while Cagliari and Fiorentina played out a 0-0 draw.
In Germany, 10-man Hertha Berlin came from behind to ease their fears of the drop with a 2-1 win over already relegated Schalke.
Former Manchester City defender Dedryck Boyata cancelled out Amine Harit's early opener before Jessic Ngankam grabbed a 73rd-minute winner.
Dodi Lukebakio was sent off for a second bookable offence late on but Hertha held on to move three points clear of the relegation play-off spot.