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.
|Inter 3 Bologna 2: Candreva prevents remarkable turnaround in Coppa Italia thriller|
|FA Cup Review: Non-league Lincoln stun Ipswich, Burnley and Palace through|
|Gabon v Burkina Faso: Aubameyang says hosts have learned from Guinea-Bissau setback|
|Mali 0 Egypt 0: El-Hadary makes history in stalemate|
|El-Hadary oldest AFCON player ever - 44-year-old Egypt goalkeeper makes history|
|Reus and Gotze on target but Bender injured in Dortmund win|
|Toure shunning lavish China interest to stay at City, says Seluk|
|Rahman´s AFCON in the balance, says Ghana boss Grant|
|Just 14 goals conceded and nine clean sheets - How Vertonghen blow could impact Tottenham|
|Ghana 1 Uganda 0: Andre Ayew hands Black Stars nervy victory|
|Swansea snap up Carroll and Olsson in double swoop|
|All is forgiven? - Costa trains with full Chelsea squad after reported Conte bust-up|
|I would throw myself off a bridge for Luis Enrique - Rakitic dismisses Barca rift rumours|
|Was Juventus´ new logo inspired by tennis star?|
|Smooth sailing for Liverpool in Plymouth? Klopp expects tough test|
|Demichelis re-joins Malaga until end of season|
|Cameroon v Guinea-Bissau: Broos urges new heroes to emerge|
|Boxing champ hits Carragher with Chinese Super League comeback prank|
|Zidane backs Navas and defends Benzema as Madrid aim to bounce back|
|Deportivo bring in Kakuta from Hebei after CSL rule changes|
|Matip could miss eight games without doing anything wrong - Klopp|
|United trigger Valencia´s contract extension|
|Ronaldo returns to Real Madrid´s Copa squad|
|FA fine Sagna for Instagram post|
|Nedved does not foresee more January business for Juventus|
|Rafinha injury blow for Barcelona|
|Villas-Boas fumes at CSL foreign player crackdown|
|Ibrahimovic invaluable to Manchester United youngsters - Rashford|
|Robben rejected China move|
|A-League review: Phoenix rise to the occasion to end Victory´s streak|
|Van Gaal slams English media over treatment at Manchester United|
|Mignolet: Liverpool in better position to win title than in 2013-14|
|Giroud wants Premier League title but understands China temptations|
|Tianjin forced to scrap moves for Costa, Benzema, Cavani and Falcao|
|My goal was better than Mkhitaryan´s - Giroud|
|Pochettino not interested in Argentina job|
|Kane: Tottenham can win Premier League|
|Corinthians dreaming of Drogba - Paulo Roberto|
|Coutinho calls for Liverpool focus|
|Chiellini compares Pogba to LeBron and Bolt|
|Maradona to become Napoli ambassador|
|Mihajlovic furious after Torino collapse|
|Icardi has offers from China - Wanda Nara|
|Pogba can cope with pressure - Ibrahimovic|
|´My half-time words will stay in the dressing room´ - Montella annoyed with AC Milan|
|Juventus unveil dramatic change to club logo - but not everyone´s a fan|
|´I do not think I will return to coaching´ - Van Gaal set to call it quits|
|Torino 2 AC Milan 2: Bacca caps thrilling comeback as hosts pay the penalty|
|DR Congo 1 Morocco 0: Kabananga pounces on blunder to give 10 men the points|
|´Happy and comfortable´ Sanchez dismisses Arsenal exit talk|
|How much?! West Ham flop Simone Zaza could cost Valencia €20m|
|Mali v Egypt: Salah leads Pharaohs´ bid for AFCON glory|
|Sevilla concede they ´cannot force´ sporting director Monchi to stay|
|Ivory Coast 0 Togo 0: Reigning champions held to opening draw by Adebayor and co.|
|Goalkeeping woes, Stones and tactical confusion - How Guardiola is making life difficult for himself|
|Ozil and Sanchez can be persuaded to stay - Cech|
|Pogba: I rejected Barcelona and Real Madrid|
|Ghana v Uganda: Gyan dreams of first trophy since 1982|
|Chiellini: Juventus a work in progress|
|Robben agrees Bayern renewal until 2018|
|Hazard: Goals do not matter to me|
|Bennell pleads not guilty to eight child sex offences|
|Muller fed up with debate over Bayern role|
|Wenger glad Sanchez is not ´a Costa problem´|
|Flick resigns as DFB´s sporting director|
|Gomis ´can´t wait´ to welcome Payet to Marseille|
|Chinese FA changes foreign player rules after ´irrational´ spending|
|Like father, like son: Justin Kluivert follows in dad´s footsteps|
|´No reason to lose him´ - Marotta rubbishes talk of Allegri exit|
|Courtois: We don´t need Costa|
|Kane: Tottenham players won´t go to China|
|Noble ´angry and disappointed´ with Payet|
|Klopp furious over Matip uncertainty|
|Wenger surprised by tight Premier League|
|´Money is not everything´ - Conte issues warning amid China speculation|
|Fiorentina defeat a ´bad setback´ - Allegri|
|´This will elevate this group of players´ - Sampaoli revels in Sevilla late show|