Los Blancos had numerous chances to win the game, but after being left frustrated they threw bodies forward in a desperate attempt to snatch the points late on.
That allowed the visitors to hit their opponents on the counter, however, with Sanabria peeling off his man at the back post to pick out the corner of the net for the game's decisive moment.
Relive how the 90 minutes of action unfolded with Sports Mole's live text coverage below.
Zinedine Zidane: "I think [Bale] is a complete player. With the pace he possesses he can inflict damage on any team when given space - as we saw the other day. But he is also very strong technically and links well with other players in tight areas. Our stadium has whistled everyone and I cannot think of anyone who has not faced it, but that is part of a career and can actually have benefits in itself."
Quique Setien: "I think that Madrid are now at a level where they can be compared with the best Barcelona. There is a real physical component to this team that maybe wasn't evident in everyone in that Barcelona team. Madrid have enchanted me, the way that they enjoy the ball in possession, how they combine, it is good to watch them play."
STARTING XI: Navas; Carvajal, Ramos, Varane, Marcelo; Casemiro; Kroos, Modric; Isco; Bale, Ronaldo
SUBS: Casilla, Nacho, Lucas Vazquez, Llorente, Asensio, Mayoral, Ceballos
STARTING XI: Adan; Barragan, Mandi, Feddal, Durmisis; Javi Garcia, Camarasa, Fabian, Francis, Tello; Sanabria
SUBS: Gimenez, Amat, Guardado, Navarro, Boudebouz, Joaquin, Sergio Leon
© Getty Images
REAL MADRID SUBS: Casilla, Nacho, Lucas Vazquez, Llorente, Asensio, Mayoral, Ceballos
REAL BETIS SUBS: Gimenez, Amat, Guardado, Navarro, Boudebouz, Joaquin, Sergio Leon