Casemiro opened the scoring for Real after 16 minutes with a spectacular scissors kick. But just moments after becoming the second name to enter the referee's book, Antoine Griezmann levelled for the hosts.
However Real went in at the pause with the advantage after skipper Sergio Ramos converted a penalty.
And amid the myriad cautions, Real added the third 16 minutes from time through substitute Gareth Bale.
Atletico's Thomas was given his marching orders soon after for his second yellow card. To compound Atletico's misery, it was their first defeat at home this season.
The victory leaves Real Madrid on 45 points after 23 games. Santiago Solari's men are five points behind pacesetters Barcelona who take on mid-table Athletic Bilbao on Sunday night.