The Welshman, a second half substitute, rounded off a 3-1 victory for Real by slotting beyond Jan Oblak in the Atletico goal from the angle.
Casiemero had opened the scoring for Real Madrid early on with a spectacular scissors-kick.
But Atletico drew level midway through the first half thanks to a slick finish from star striker Antoine Griezmann.
Jose Giminez was judged to have brought down Vinicius Junior in the area just before half time — a decision confirmed by the video assistant referee (VAR) — allowing Sergio Ramos to restore Real’s advantage.
And after Bale struck the decisive blow, Atletico’s misery was completed late in the second period when midfielder Thomas Partey was sent off for a second bookable offense.
The win is Real’s fifth in a row over city rivals Atletico.
But Diego Simeone’s had their chances Saturday even if Real was well worthy of the victory.
Alvaro Morata, a product of Real’s youth system but now playing in the red and white of Atletico, had a goal ruled out for offside by VAR.
The on loan Chelsea striker was unfortunate given his exquisite touch and finish over the head of Thibaut Courtois in the Real goal.
100 and counting
Bale has been a scorer of key goals for Madrid in recent years, including two in last years Champions League final win over Liverpool.
But Real manager Santi Solari chose to start him on the bench, as he did during Wednesday’s 1-1 Copa Del Rey draw with Barcelona.
Bale could have added his second and Real’s fourth late on but failed to convert a good headed chance.
He will have to wait until at least Wednesday’s visit to Ajax in the Champions League last 16 to get started on his second century of Real goals.
The win sees Real overtake Atletico to go second in the La Liga table with leaders Barcelona due to play Athletic Bilbao Sunday.