Two dreadful errors ended Real Madrid's slim hopes of winning the Liga title as Celta Vigo claimed a shock 2-0 victory on Sunday.
Back-to-back draws with Valencia and Real Valladolid left Madrid needing to win their two remaining fixtures and hope that Atletico - with a better head-to-head record against their city rivals - slipped up in both of theirs.
But despite Atletico only drawing at home to Malaga, Carlo Ancelotti's men are now out of the running after failing to do their part.
Real's defenders were their chief culprits, as mistakes from Sergio Ramos and Marcelo helped Charles to perhaps the simplest double of his career.
All eyes will now turn to the Camp Nou, where defending champions Barcelona will host Atletico in a mouth-watering championship decider next weekend.
Barcelona, who are three points adrift in second, will win the league with a victory while Atletico need only to avoid defeat.
Real were hampered from the off, with a thigh injury ensuring that Cristiano Ronaldo could not even take a place on the bench.
Fellow big-money recruit Gareth Bale was among the substitutes, while Sami Khedira started a game for the first time since damaging knee ligaments in November.
It was the visitors who started on the front foot, their first opening coming when Marcelo's powerful half-volley was deflected just wide.
But Celta began to press thereafter, with Fabian Orellana looking particularly threatening.
Ancelotti's side defended impressively to weather that spell without giving up any real chances and gradually began to impose their will on the game.
Their attacking intent almost led to an opener in the 35th minute, Isco forcing a superb reaction save from Sergio Alvarez with a low effort.
Another chance went begging when Alvaro Morata fired Marcelo's low cross wide - and Real were left to rue their profligacy as the home side took the lead three minutes before the break.
Ramos was the culprit, his slip leaving Charles to round Diego Lopez and slide the ball into the empty net from a tight angle.
As expected, Real came out positively after the break and almost levelled matters when Luka Modric shot over in the process of being brought down in the area by Jon Aurtenetxe, the referee turning down strong penalty appeals.
Undeterred, the visitors pressed forward further, with Morata and Isco again testing Alvarez.
But the latter's chance, in which he shot straight at the goalkeeper, prompted an immediate reply as Celta increased their lead.
Marcelo was at fault this time, selling Lopez short with an awful back-pass that allowed Charles to nip in and grab his second.
Real pushed desperately to get back into it late on, but the inspired Alvarez combined with some dogged defending to keep them out.
|Premier League title City´s to lose, but Sterling wary of United charge|
|Barcelona´s Deulofeu a Clasico doubt after training injury|
|Salah ´is a player I rate a lot´, says Zidane|
|Allardyce lauds ´invaluable´ Rooney|
|Ramos fit for Club World Cup final|
|Lille sack Bielsa to end failed experiment|
|Manchester United job like Real Madrid, says Mourinho|
|Fernandinho is much better than I was, Guardiola claims|
|That Harry Kane team? – I´m over Guardiola dig, says Pochettino|
|Mourinho open to January moves as Griezmann rumours swirl|
|Berizzo set for Sevilla return after cancer surgery|
|Manchester City will not go unbeaten in Premier League - Guardiola|
|Man City are the best – Pochettino braced for Spurs´ toughest test|
|Conte hopeful over David Luiz´s ´serious´ knee injury|
|Neymar not an injury risk after Brazil trip - Emery|
|Bailly to miss three months due to ankle surgery|
|Klopp defends Liverpool rotation policy|
|Arsenal fan Prince Harry´s wedding day to clash with FA Cup final|
|He´s one of the best – Simeone showers Oblak with praise|
|Juventus won´t sell in-demand Pjaca, agent claims|
|Bolasie in line for Everton return after long-term injury|
|Maradona told Real Madrid to sign Mbappe|
|Sydney FC 3 Melbourne City 1: Champions come from behind to go eight points clear|
|Red-hot Salah wins Player of the Month|
|Heynckes unaware of reported Sanches loan termination|
|Maradona: I´d have won more Ballons d´Or than Ronaldo and Messi|
|Wenger confirms Wilshere contract talks imminent|
|We´ve never been approached by Man United – Wenger rejects Ozil reports|
|Lewandowski demands focus ahead of Christmas|
|Klopp right to rotate at Liverpool – Neville|
|Donnarumma plays down Milan exit rumours|
|Barkley could leave in January – Allardyce|
|Pulisic voted youngest-ever male USA player of the year|
|Griezmann will be allowed to leave – Simeone|
|Guardiola appears to aim another dig at Mourinho|
|Vardy relishing Fleetwood return|
|Almiron blocked from becoming Las Palmas coach|
|Ligue 1 adopts VAR from next season|
|Calabria extends AC Milan contract|
|Everton give new deals to Calvert-Lewin, Holgate & Kenny|
|Under-fire Hughes promises results will come for Stoke|
|Mourinho asked to explain pre-Manchester derby comments|
|Stoger sets Dortmund end of year target|
|Dyche: No swaggering from high-flying Burnley|
|Watzke plays down Nagelsmann rumour as Dortmund plan for 2018|
|Guardiola´s record runs with Manchester City, Bayern Munich and Barcelona compared|
|Benteke goal drought a concern for Hodgson|
|City look frightening – Rose|
|Kahn regrets rejecting Manchester United|
|Bayern wrapping up Ribery for Christmas|
|Wilshere no closer to signing fresh Arsenal contract|
|Resurgent Rooney has Europe´s best shot-conversion record|
|Pastore bullish over PSG chances against Madrid|
|Independiente boss overjoyed by ´dream´ Copa Sudamericana success|
|Silva is an animal - Guardiola|
|Wenger not blaming Sanchez for Arsenal´s goal woes|
|Mourinho can´t find room for misfiring Mkhitaryan|
|Guardiola tells fans Man City won´t stop after record-breaking win|
|Mirabelli: Donnarumma has to beg Milan if he wants to leave|
|Bayern lacked verve, says Heynckes|
|Di Maria wants more game time at PSG after goalscoring display|
|Gattuso: Donnarumma shaken by abuse from AC Milan fans|
|Pellegrino calls for Southampton reaction|
|Benitez ´needs to know´ extent of Newcastle´s transfer budget|
|Zidane will not request striker signing despite Benzema blanks|
|Bournemouth excellent in Old Trafford loss – Howe|
|Wilshere´s performance ´very positive´, says Wenger|
|Pochettino challenges Spurs to keep top-four berth|
|I´d be in Brazil if the title race was over – Mourinho|
|It was hard to watch - Clement wowed by City´s dominance of Swansea|
|Bailly may require surgery on ´serious´ ankle injury|
|Klopp uncertain on Solanke´s disallowed goal|
|Guardiola sure record-breaking City won´t get complacent|
|Puel focuses on Leicester win, not Southampton revenge|
|Strasbourg 2 Paris Saint-Germain 4: Revenge is sweet for Emery´s men|
|Tottenham 2 Brighton and Hove Albion 0: Aurier scores a fluke as Spurs go fourth|
|West Ham 0 Arsenal 0: Wasteful Gunners drop points for third game in a row|
|Liverpool 0 West Brom 0: More frustration for Klopp as hosts draw again|
|Manchester United 1 Bournemouth 0: Lukaku eases scoring concerns after derby day woes|
|AC Milan 3 Verona 0: Bonaventura shines as Gattuso´s side march on|
|Newcastle United 0 Everton 1: Rooney haunts Magpies again|
|Manchester City set new Premier League winning streak|
|Swansea City 0 Manchester City 4: Silva sparkles as Guardiola´s record-breakers march on|
|Southampton 1 Leicester City 4: Puel serves up Saints revenge|
|Bayern Munich 1 Cologne 0: Lewandowski opens nine-point gap in Bundesliga|
|Mourinho slams Manchester derby penalty decision in programme notes|
|This is my last season at Monaco – Fabinho|
|Bale: Football would be better without VAR|
|Thought Mayweather v McGregor was 2017´s biggest sporting event? Think again!|
|Manchester United´s Gomes pens professional contract|
|Al Jazira 1 Real Madrid 2: Bale spares Spanish blushes at Club World Cup|
|Ronaldo takes goalscoring record from Messi|
|Al Jazira stun Real Madrid to take half-time lead in Club World Cup|
|Neymar returns to PSG after break|
|Iniesta would welcome Barca pursuit of Coutinho|
|FA extends deadline for Manchester clubs to respond over alleged derby fracas|
|Dybala clever enough to listen to Nedved - Buffon|
|Willian not ready to walk out on Chelsea|
|Arsenal striker Lacazette not counting on title miracle|
|World Cup glory worth €350,000 to Germany stars|
|I live day by day - Buffon ponders Euro 2020|
|West Ham eyeing Wilshere swoop in January|
|Klopp reveals hamstring scare for Liverpool star Salah|
|FFA refuses to speculate on Scolari amid Socceroos interest|
|Ronaldo hoping to play with Benzema and Bale again|
|Mourinho takes aim at reporters as Man United boss leaves news conference|
|´Bull****´ to suggest Chelsea can catch Man City – Conte|
|Pordenone would´ve deserved Coppa Italia progression, admits Spalletti|
|Man City haven´t won anything yet – Gundogan|
|Willian: Chelsea will keep fighting for Premier League title|
|Burnley aren´t the real deal – Dyche|
|Stoger wants to bring best out of BVB after breakthrough victory|
|Conte praises contribution of Hazard, Willian and Pedro|
|Inter 0 Pordenone 0 (AET, 5-4 on penalties): Nagatomo spares Serie A leaders´ blushes|